// JavaScript Document

var iSizeTxt = 0; // compteur des changements de tailles du texte

function focusField(id_target, str_ref) {
	var val = $(id_target).value;
	if (val == str_ref) $(id_target).value = '';
}

function blurField(id_target, str_ref) {
	var val = $(id_target).value.RLTrim();
	if (val.length == 0) $(id_target).value = str_ref;
}


/************ fonctions les pages d'accueil ************/

function actuAleatoire(index) {
	for (i=1; i<4; i++) {
		if (i == index) {
			$('actuFlash_'+i).removeClassName('displayNone');
			$('actuFlash_'+i).addClassName('displayBlock');
			
			break;
		}
	}
}

/************ fin fonctions sur les pages d'accueil  ************/


/************ fonctions sur les pictos ************/

function majAllTxt(obj) {
	var img = obj.getElementsByTagName('img')[0];
	var src_more = "txt_plus.gif";
	
	if (img.src.indexOf(src_more) > -1) {
		if (iSizeTxt < 4) iSizeTxt++;
	}
	else {
		if (iSizeTxt > 0) iSizeTxt--;
	}
	
	majTxtSize.defer(obj, 'txt8');
	majTxtSize.defer(obj, 'txt9');
	majTxtSize.defer(obj, 'txt10');
	majTxtSize.defer(obj, 'txt11');
	majTxtSize.defer(obj, 'txt12');
	majTxtSize.defer(obj, 'txt14');
	majTxtSize.defer(obj, 'txt15');
	majTxtSize.defer(obj, 'txt16');
}

function majTxtSize(obj, txtClass) {
	var main = $('main');
	var childsTxt = main.getElementsByClassName(txtClass);
	var taille = parseInt(txtClass.substring(3,5));

	for (i=0; i<childsTxt.length; i++) {
		var childs_strong = childsTxt[i].getElementsByTagName('strong');
		var childs_span = childsTxt[i].getElementsByTagName('span');
		var childs_b = childsTxt[i].getElementsByTagName('b');
		var childs_i = childsTxt[i].getElementsByTagName('i');
		var childs_a = childsTxt[i].getElementsByTagName('a');
		var childs_li = childsTxt[i].getElementsByTagName('li');
		
		for (j=0; j<childs_strong.length; j++) {childs_strong[j].style.fontSize = parseInt(taille+iSizeTxt)+"px";}
		for (j=0; j<childs_b.length; j++) {childs_b[j].style.fontSize = parseInt(taille+iSizeTxt)+"px";}
		for (j=0; j<childs_i.length; j++) {childs_i[j].style.fontSize = parseInt(taille+iSizeTxt)+"px";}
		for (j=0; j<childs_a.length; j++) {childs_a[j].style.fontSize = parseInt(taille+iSizeTxt)+"px";}
		for (j=0; j<childs_span.length; j++) {childs_span[j].style.fontSize = parseInt(taille+iSizeTxt)+"px";}
		for (j=0; j<childs_li.length; j++) {childs_li[j].style.fontSize = parseInt(taille+iSizeTxt)+"px";}
		
		childsTxt[i].style.fontSize = parseInt(taille+iSizeTxt)+"px";
	}
}

function ajaxEnvoiAmi(urlPropre) {
	var ladate = new Date();
	var new_etat_envoi_ami = false;
	var url = pathSite+"inc/envoi_ami.asp";
	var pars = "pathSite="+pathSite;
	pars += "&urlPropre="+urlPropre;
	pars += "&lang="+global_lang.toLowerCase();
 	pars += "&anticache="+ladate.getTime();
	
	switchElmt('send_on', 'send_off');
	
	if (!etat_envoi_ami) {
		var myAjax = new Ajax.Updater('blocEnvoiAmi',
				url,
				{
				 method: 'get',
				 parameters: pars,
				 evalScripts: true,
				 onSuccess: function(transport) {
					etat_envoi_ami = true;
					new Effect.toggle('blocEnvoiAmi', 'blind', {duration:0.2});
				 }
				});
	}
	else new Effect.toggle('blocEnvoiAmi', 'blind', {duration:0.2});
}

/************ fin fonctions sur les pictos ************/


/************ fonctions sur l'envoi à un ami ************/

function envoiAmi(urlReferer, urlPropre) {
	var reg_email = /^[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)*@([a-zA-Z0-9-]{2,}[.])+[a-zA-Z]{2,}$/;
	var errEmails = false;
	
	var tabEmail = $F('emails_amis').RLTrim().split(";");
	for (var i=0; i<tabEmail.length; i++) {
		var verif_email = reg_email.test(tabEmail[i]);
		if (!verif_email) errEmails = true;
	}
	
	switch (global_lang) {
		case 'EN':
			var msgBadFormat = "The format of emails provided is not correct!\nEmails must be separated by semicolons, without spaces.";
			var msgMatter = "Operation momentarily impossible.";
			break;
		case 'DE':
			var msgBadFormat = "Das Format der E-Mail ist nicht korrekt ausf&uuml;llen!\nDie E-Mails werden getrennt durch Semikolon, ohne Leerzeichen.";
			var msgMatter = "Operation momentan nicht m&ouml;glich.";
			break;
		default:
			var msgBadFormat = "Le format des emails renseign&eacute;s n'est pas correcte !\nLes emails doivent &ecirc;tre s&eacute;par&eacute;s par des points-virgules.";
			var msgMatter = "Op&eacute;ration momentan&eacute;ment impossible.";
	}
	
	if (errEmails) {
		alerte(msgBadFormat);
		$('emails_amis').focus();
	}
	else {
		var ladate = new Date();
		var url = pathSite+"inc/envoi_ami_ok.asp";
 		url += "?anticache="+ladate.getTime();
		
		$('btnEnvoiAmi').removeClassName('displayBlock');
		$('btnEnvoiAmi').addClassName('displayNone');
		switchElmt('cancelEnvoiAmi', 'loaderBtnEnvoiAmi');
	
		var myAjax = new Ajax.Request(
			url,
			{
				method: 'post',
				asynchronous: true,
				contentType:  'application/x-www-form-urlencoded',
				encoding:     'UTF-8',
				parameters: {
					emails_amis : $F('emails_amis'),
					message_amis : $F('message_amis'),
					lang : global_lang,
					urlReferer : urlReferer,
					urlPropre : urlPropre
				},
				onSuccess: function(transport){
					// alerte(transport.responseText);
					if (parseInt(transport.responseText) > 0) alerte(msgMatter);
					else {
						setTimeout("affMsgEnvoiAmiOk()", 500);
						new Effect.toggle('blocEnvoiAmiForm', 'blind', {duration:0.2});
					}
				}, 
				onFailure: function(){
					$('btnEnvoiAmi').removeClassName('displayNone');
					$('btnEnvoiAmi').addClassName('displayBlock');
					switchElmt('loaderBtnEnvoiAmi', 'cancelEnvoiAmi');
					alerte(msgMatter);
				}
			});
	}
}

function affMsgEnvoiAmiOk() {
	setTimeout("cacheMsgEnvoiAmiOk()", 6000);
	new Effect.toggle('msgEnvoiAmiOk', 'blind', {duration:0.2});
}

function cacheMsgEnvoiAmiOk() {
	setTimeout("affFormEnvoiAmi()", 300);
	new Effect.toggle('msgEnvoiAmiOk', 'blind', {duration:0.2});
}

function affFormEnvoiAmi() {
	$('btnEnvoiAmi').removeClassName('displayNone');
	$('btnEnvoiAmi').addClassName('displayBlock');
	switchElmt('loaderBtnEnvoiAmi', 'cancelEnvoiAmi');
	
	$('emails_amis').clear();
	$('message_amis').clear();
	
	setTimeout("cacheEnvoiAmi()", 200);
	new Effect.toggle('blocEnvoiAmiForm', 'blind', {duration:0.1});
}

function cacheEnvoiAmi() {
	setTimeout("switchElmt('send_off', 'send_on')", 300);
	new Effect.toggle('blocEnvoiAmi', 'blind', {duration:0.2});
}

/************ fin fonctions sur l'envoi à un ami ************/


/************ fonctions sur les bons plans ************/

function initBonPlan(idVille) {
	var ladate = new Date();
	var checkSens = pathSite+"inc/sensParcours.asp";
	var reqSens = file(checkSens+"?anticache="+ladate.getTime());
	
	if (reqSens.readyState == 4) {
		var sens = reqSens.responseText;
		ajaxAllTips(idVille, sens);
	}
}

function ajaxAllTips(idVille, sens) {
	ajaxBonPlan(idVille, sens, "events");
	ajaxBonPlan.defer(idVille, sens, "places");
}

function ajaxBonPlan(idVille, sens, type) {
	var ladate = new Date();
	var url = pathSite+"inc/bon_plan_"+type+".asp";
	var pars = "idVille="+idVille;
	pars += "&sensParcours="+sens;
	pars += "&lang="+global_lang.toLowerCase();
 	pars += "&anticache="+ladate.getTime();
	
	var myAjax = new Ajax.Updater('list_'+type,
			url,
			{
			 method: 'get',
			 parameters: pars,
			 evalScripts: true,
			 contentType:  'text/html',
			 encoding:     'UTF-8',
			 onSuccess: function(transport) {
				$('loader_'+type).removeClassName('displayBlock');
				$('loader_'+type).addClassName('displayNone');
				
				if (!(transport.responseText.length > 0)) {
					$('bloc_'+type).removeClassName('displayBlock');
					$('bloc_'+type).addClassName('displayNone');
				}
			 }
			});
}

/************ fin fonctions sur les horaires ************/


/************ fonctions sur les horaires ************/

function recupStation(id, idLoader) {
	var ladate = new Date();
	var oText = $(id);
	var url = pathSite+"inc/stations.asp";
	var pars = "val="+escape(oText.value);
	pars += "&lang="+global_lang.toLowerCase();
 	pars += "&anticache="+ladate.getTime();
	
	if (oText.value.RLTrim().length > 2) {
		$(id).disable();
		$(idLoader).removeClassName('displayNone');
		$(idLoader).addClassName('displayBlock');
		
		var myAjax = new Ajax.Request(
				url,
				{
					method: 'get',
					parameters: pars,
					onComplete: function(transport) {
						var stations = transport.responseXML.getElementsByTagName("Station");
						var strHtml = "";
						for (var i=0;i<stations.length;i++) {
							var className = "eltGarePair";
							if ((i % 2) == 1) className = "eltGareImpair";
							strHtml += "<div id=\"gare_"+id+"_"+i+"\" class=\"listGaresOut "+className+"\" onmouseover=\"funcOverOut('gare_"+id+"_"+i+"', 'listGaresOut', 'listGaresOver')\" onmouseout=\"funcOverOut(this, 'listGaresOver', 'listGaresOut')\" onclick=\"renseigne('"+id+"','"+stations[i].getAttribute('id')+"','"+escape(stations[i].getAttribute('name'))+"');\">";
							strHtml += stations[i].getAttribute('name');
							strHtml += "</div>";
						}
						var divList = $(id+"list");
						divList.innerHTML = strHtml;
						divList.removeClassName('displayNone');
						divList.addClassName('displayBlock');
						
						$(id).enable();
						$(id).focus();
						$(idLoader).removeClassName('displayBlock');
						$(idLoader).addClassName('displayNone');
					}
				});
	}
}

function funcOverOut(idObj, classSource, classCible) {
	$(idObj).removeClassName(classSource);
	$(idObj).addClassName(classCible);
}

function renseigne(id,val,nom){
	$(id).value = unescape(nom);
	$(id+"fin").value = val;
	
	var divList = $(id+"list");
	divList.removeClassName('displayBlock');
	divList.addClassName('displayNone');
}

function verifSaisieTrajet() {
	var msgErr = "";
	var oErr;
	
	var re_date = /^(\d+)\/(\d+)\/(\d+)/;
	var is_date = true;
	
	var ladate = new Date();
	var checkUrl = pathSite+"inc/check_date.asp";
	var compareUrl = pathSite+"inc/compare_date.asp";
	
	switch (global_lang) {
		case 'EN':
			var msgDepVille = "Veuillez cliquer sur votre ville de d&eacute;part dans liste correspondante.";
			var msgArrVille = "Veuillez cliquer sur votre ville d'arriv&eacute;e dans liste correspondante.";
			var msgFormatDateDu = "La date de d&eacute;but de p&eacute;riode est incorrecte.";
			var msgFormatDateAu = "La date de fin de p&eacute;riode est incorrecte.";
			var msgDateDu = "La date de d&eacute;but de p&eacute;riode doit &ecirc;tre post&eacute;rieure &agrave; la date actuelle.";
			var msgDateAu = "La date de d&eacute;but de p&eacute;riode ne doit pas &ecirc;tre post&eacute;rieure &agrave; celle de fin.";
			var msgJours = "Veuillez s&eacute;lectionnez au moins un jour de la semaine.";
			break;
		case 'DE':
			var msgDepVille = "Veuillez cliquer sur votre ville de d&eacute;part dans liste correspondante.";
			var msgArrVille = "Veuillez cliquer sur votre ville d'arriv&eacute;e dans liste correspondante.";
			var msgFormatDateDu = "La date de d&eacute;but de p&eacute;riode est incorrecte.";
			var msgFormatDateAu = "La date de fin de p&eacute;riode est incorrecte.";
			var msgDateDu = "La date de d&eacute;but de p&eacute;riode doit &ecirc;tre post&eacute;rieure &agrave; la date actuelle.";
			var msgDateAu = "La date de d&eacute;but de p&eacute;riode ne doit pas &ecirc;tre post&eacute;rieure &agrave; celle de fin.";
			var msgJours = "Veuillez s&eacute;lectionnez au moins un jour de la semaine.";
			break;
		default:
			var msgDepVille = "Veuillez cliquer sur votre ville de d&eacute;part dans liste correspondante.";
			var msgArrVille = "Veuillez cliquer sur votre ville d'arriv&eacute;e dans liste correspondante.";
			var msgFormatDateDu = "La date de d&eacute;but de p&eacute;riode est incorrecte.";
			var msgFormatDateAu = "La date de fin de p&eacute;riode est incorrecte.";
			var msgDateDu = "La date de d&eacute;but de p&eacute;riode doit &ecirc;tre post&eacute;rieure &agrave; la date actuelle.";
			var msgDateAu = "La date de d&eacute;but de p&eacute;riode ne doit pas &ecirc;tre post&eacute;rieure &agrave; celle de fin.";
			var msgJours = "Veuillez s&eacute;lectionnez au moins un jour de la semaine.";
	}
	
	if ($F('depfin') == "0") msgErr = msgDepVille;
	else if ($F('arrfin') == "0") msgErr = msgArrVille;
	else if (!re_date.exec($F('dateDu'))) msgErr = msgFormatDateDu;
	else if (!re_date.exec($F('dateAu'))) msgErr = msgFormatDateAu;
	else if (file(checkUrl+"?date_saisie="+$F('dateDu')+"&anticache="+ladate.getTime()).responseText == "ko") msgErr = msgFormatDateDu;
	else if (file(compareUrl+"?date_1=&date_2="+$F('dateDu')+"&anticache="+ladate.getTime()).responseText < 0) msgErr = msgDateDu;
	else if (file(checkUrl+"?date_saisie="+$F('dateAu')+"&anticache="+ladate.getTime()).responseText == "ko") msgErr = msgFormatDateAu;
	else if (file(compareUrl+"?date_1="+$F('dateDu')+"&date_2="+$F('dateAu')+"&anticache="+ladate.getTime()).responseText < 0) msgErr = msgDateAu;
	else if ($F('dateNorm') == "NNNNNNN") msgErr = msgJours;
	else {msgErr = "";}
	
	if (msgErr.length == 0) calculTrajet();
	else {
		alerte(msgErr);
		return false;
	}
}

function calculTrajet(){
	var ladate = new Date();
	var tabDateDu = $F("dateDu").split("/");
	var tabDateAu = $F("dateAu").split("/");
	
	if (parseInt(tabDateDu[0]) < 10) tabDateDu[0] = "0"+tabDateDu[0];
	if (parseInt(tabDateDu[1]) < 10) tabDateDu[1] = "0"+tabDateDu[1];
	if (parseInt(tabDateAu[0]) < 10) tabDateAu[0] = "0"+tabDateAu[0];
	if (parseInt(tabDateAu[1]) < 10) tabDateAu[1] = "0"+tabDateAu[1];
	
	var url = pathSite+"inc/trajet.asp";
	var pars = "depfin="+escape($F("depfin"));
	pars += "&arrfin="+escape($F("arrfin"));
	pars += "&dep="+escape($F("dep"));
	pars += "&arr="+escape($F("arr"));
	pars += "&lang="+global_lang.toLowerCase();
	pars += "&typeTrajet="+escape($F("typeTrajet"));
	pars += "&dateDu="+tabDateDu[2]+tabDateDu[1]+tabDateDu[0];
	pars += "&dateAu="+tabDateAu[2]+tabDateAu[1]+tabDateAu[0];
	pars += "&dateNorm="+$F('dateNorm');
	pars += "&pathSite="+pathSite;
 	pars += "&anticache="+ladate.getTime();
	
	switchElmt('btnCalcul', 'loaderTrains');
		
	var myAjax = new Ajax.Updater('blocTrains',
			url,
			{
			 method: 'get',
			 parameters: pars,
			 evalScripts: true,
			 onComplete: function(transport) {
				$('blocTrajet').removeClassName('displayNone');
				$('blocTrajet').addClassName('displayBlock');
				$('trajet').innerHTML = $F('dep')+" > "+$F('arr');
				$('trajet').style.fontSize = parseInt(16+iSizeTxt)+"px";
				
				switchElmt('loaderTrains', 'btnCalcul');
			 }
			});
}

function cocheTrajetDirect(val) {
	$("typeTrajet").value = val;
	
	switchElmt.defer('link_trajet_direct', 'coche_trajet_direct');
	switchElmt.defer('coche_trajet_corres', 'link_trajet_corres');
}

function cocheTrajetCorres(val) {
	$("typeTrajet").value = val;
	
	switchElmt.defer('link_trajet_corres', 'coche_trajet_corres');
	switchElmt.defer('coche_trajet_direct', 'link_trajet_direct');
}

function majJours() {
	var valJours = "";
	
	for (i=0; i<7; i++) {
		var oCheck = $('checkJour'+i);
		
		if (oCheck.checked) valJours += "Y";
		else valJours += "N";
	}
	
	$('dateNorm').value = valJours;
}

/************ fin fonctions sur les horaires ************/


/************ fonctions sur le bloc de flux ************/

function initFluxList() {
	var ladate = new Date();
	var checkSens = pathSite+"inc/sensParcours.asp";
	var reqSens = file(checkSens+"?anticache="+ladate.getTime());
	
	if (reqSens.readyState == 4) {
		var sens = reqSens.responseText;
		var index = 0;
	
		if (sens == "france_suisse") index = 1;
		$('selectFluxSens').selectedIndex = index;
		
		ajaxFluxList(sens);
	}
}

function ajaxFluxList(sens) {
	var ladate = new Date();
	var url = pathSite+"inc/flux_list.asp";
	var pars = "sensFlux="+sens;
 	pars += "&pathSite="+pathSite;
	pars += "&lang="+global_lang.toLowerCase();
 	pars += "&anticache="+ladate.getTime();
	
	switchElmt('btnFluxList', 'loaderFluxList');
	
	var myAjax = new Ajax.Updater('blocFluxList',
			url,
			{
			 method: 'get',
			 parameters: pars,
			 evalScripts: true,
			 onComplete: function(transport) {
				switchElmt('loaderFluxList', 'btnFluxList');
			 }
			});
}

/************ fin fonctions sur le bloc de flux ************/


/************ fonctions sur la recherche ************/

function validRecherche(strRef) {
	switch (global_lang) {
		case 'EN':
			var badStr = "Your string is empty.";
			break;
		case 'DE':
			var badStr = "Ihre Zeichenfolge ist leer.";
			break;
		default:
			var badStr = "Votre cha&icirc;ne de caract&egrave;res est vide.";
	}
	
	if ((strRef == $F('field_recherche')) || ($F('field_recherche').RLTrim().length == 0)) {
		alerte(badStr);
		return false;
	}
}

/************ fin fonctions sur la recherche ************/


/************ fonctions sur les billets ************/

function initBillet() {
	var ladate = new Date();
	var checkSens = pathSite+"inc/sensParcours.asp";
	var reqSens = file(checkSens+"?anticache="+ladate.getTime());
	
	if (reqSens.readyState == 4) {
		var sens = reqSens.responseText;
		var index = 0;
	
		if (sens == "suisse_france") index = 1;
		$('selectBilletSens').selectedIndex = index;
		
		ajaxBillet(sens);
	}
}

function ajaxBillet(sens) {
	var ladate = new Date();
	var url = pathSite+"inc/billet.asp";
	var pars = "sensBillet="+sens;
 	pars += "&pathSite="+pathSite;
	pars += "&lang="+global_lang.toLowerCase();
 	pars += "&anticache="+ladate.getTime();
	
	switchElmt('btnBillet', 'loaderBillet');
	
	var myAjax = new Ajax.Updater('blocBillet',
			url,
			{
			 method: 'get',
			 parameters: pars,
			 evalScripts: true,
			 onComplete: function(transport) {
				switchElmt('loaderBillet', 'btnBillet');
			 }
			});
}

/************ fin fonctions sur les billets ************/


/************ fonctions sur le plan des voitures ************/

function initPlanVoitures() {
	$('selectPlanVoitures').selectedIndex = 0;
	ajaxPlanVoitures();
}

function ajaxPlanVoitures() {
	var ladate = new Date();
	var url = pathSite+"inc/voitures.asp";
	var pars = "voitures="+$F('selectPlanVoitures');
 	pars += "&anticache="+ladate.getTime();
	
	switchElmt('btnPlanVoitures', 'loaderPlanVoitures');
	
	var myAjax = new Ajax.Updater('blocPlanVoitures',
			url,
			{
			 method: 'get',
			 parameters: pars,
			 evalScripts: true,
			 onComplete: function(transport) {
				switchElmt('loaderPlanVoitures', 'btnPlanVoitures');
			 }
			});
}

/************ fin fonctions sur le plan des voitures ************/


/************ fonctions sur la newsletter ************/

function inscritNewsletter(urlReferer) {
	var reg_email = /^[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)*@([a-zA-Z0-9-]{2,}[.])+[a-zA-Z]{2,}$/;
	var verif_email = reg_email.test($F('emailNewsletter'));
	
	switch (global_lang) {
		case 'EN':
			var msgBadFormat = "Your e-mail does not have the correct format.";
			var msgMatter = "Operation momentarily impossible.";
			break;
		case 'DE':
			var msgBadFormat = "Ihre E-Mail nicht das richtige Format.";
			var msgMatter = "Operation momentan nicht m&ouml;glich.";
			break;
		default:
			var msgBadFormat = "Votre email n'a pas le bon format.";
			var msgMatter = "Op&eacute;ration momentan&eacute;ment impossible.";
	}
	
	if (verif_email) {
		var url = "/main/FCK/File/site_"+global_lang.toLowerCase()+"/my_lyria/newsletter.asp?email="+$F('emailNewsletter');
		document.location.href = url;
		
		/*var ladate = new Date();
		var url = pathSite+"inc/newsletter_ok.asp";
 		url += "?anticache="+ladate.getTime();
		
		switchElmt('btnNewsletter', 'loaderNewsletter');
	
		var myAjax = new Ajax.Request(
			url,
			{
				method: 'post',
				asynchronous: true,
				contentType:  'application/x-www-form-urlencoded',
				encoding:     'UTF-8',
				parameters: {
					email : $F('emailNewsletter'),
					lang : lang,
					urlReferer : urlReferer
				},
				onSuccess: function(transport){
					if (parseInt(transport.responseText) > 0) alerte(msgMatter);
					else {
						$('loaderNewsletter').removeClassName('displayBlock');
						$('loaderNewsletter').addClassName('displayNone');
						$('emailNewsletter').removeClassName('displayBlock');
						$('emailNewsletter').addClassName('displayNone');
						$('msgNewsletterOk').removeClassName('displayNone');
						$('msgNewsletterOk').addClassName('displayBlock');
						
						setTimeout("reAfficheEmailField()", 4000);
					}
				}, 
				onFailure: function(){alerte(msgMatter);}
			});*/
	}
	else alerte(msgBadFormat);
}

function reAfficheEmailField() {
	$('msgNewsletterOk').removeClassName('displayBlock');
	$('msgNewsletterOk').addClassName('displayNone');
	$('emailNewsletter').removeClassName('displayNone');
	$('emailNewsletter').addClassName('displayBlock');
	$('btnNewsletter').removeClassName('displayNone');
	$('btnNewsletter').addClassName('displayBlock');
	
	$('emailNewsletter').value = $F('defaultEmailNewsletter')
}

/************ fin fonctions sur la newsletter ************/


/************ fonctions sur l'abonnoment newsletter ************/

function initNewsAboForm(strEmail, sens, lang) {
	var form = document.formNewsAbo;
	
	if (strEmail.RLTrim().length == 0) $('util_email').clear();
	$('util_email_bis').clear();
	$('util_civilite').selectedIndex = 0;
	$('util_nom').clear();
	$('util_prenom').clear();
	$('util_age').selectedIndex = 0;
	// $('util_telephonePortable').clear();
	// $('util_pays').clear();
	$('util_voyage_classe').selectedIndex = 0;
	$('util_voyage_raisons').selectedIndex = 0;
	$('util_voyage_frequence').selectedIndex = 0;
	
	var index_pays = (sens == "france_suisse") ? 0 : 1;
	form.util_pays[index_pays].checked = true;
	
	var index_langue = (lang == "FR") ? 0 : ((lang == "DE") ? 1 : 2);
	form.util_langue[index_langue].checked = true;
	
	form.util_accepte_partenaires[0].checked = false;
	form.util_accepte_partenaires[1].checked = false;
}

function inscritNewsAbo(urlReferer, strEmail, sens, lang) {
	var form = document.formNewsAbo;
	
	var reg_email = /^[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)*@([a-zA-Z0-9-]{2,}[.])+[a-zA-Z]{2,}$/;
	var verif_email = reg_email.test($F('util_email'));
	
	switch (global_lang) {
		case 'EN':
			var msgBadFormat = "Your e-mail does not have the correct format.";
			var msgBadConfirmation = "The confirmation of your email is not correct.";
			var msgMatter = "Operation momentarily impossible.";
			var msgDonneesPersos = "Thank you to specify whether you agree that your data are communicated to our partners.";
			break;
		case 'DE':
			var msgBadFormat = "Ihre E-Mail nicht das richtige Format.";
			var msgBadConfirmation = "Die Best&auml;tigung Ihrer E-Mail ist nicht korrekt.";
			var msgMatter = "Operation momentan nicht m&ouml;glich.";
			var msgDonneesPersos = "Vielen Dank, dass Sie festlegen, ob Sie damit einverstanden, dass Ihre Daten werden an unsere Partner.";
			break;
		default:
			var msgBadFormat = "Votre email n'a pas le bon format.";
			var msgBadConfirmation = "La confirmation de votre email n'est pas correcte.";
			var msgMatter = "Op&eacute;ration momentan&eacute;ment impossible.";
			var msgDonneesPersos = "Merci de pr&eacute;ciser si vous acceptez que vos donn&eacute;es soient communiqu&eacute;es &agrave; nos partenaires.";
	}
	
	var util_pays_val;
	var elmts = form.util_pays;
	for (i=0; i<elmts.length; i++) {
		if (elmts[i].checked) {
			util_pays_val = elmts[i].value;
			break;
		}
	}
	
	var util_langue_val;
	var elmts = form.util_langue;
	for (i=0; i<elmts.length; i++) {
		if (elmts[i].checked) {
			util_langue_val = elmts[i].value;
			break;
		}
	}
	
	var util_accepte_partenaires_val = "";
	var elmts = form.util_accepte_partenaires;
	for (i=0; i<elmts.length; i++) {
		if (elmts[i].checked) {
			util_accepte_partenaires_val = elmts[i].value;
			break;
		}
	}
	
	if (!verif_email) {
		alerte(msgBadFormat);
		$('util_email').focus();
	}
	else if ($F('util_email') != $F('util_email_bis')) {
		alerte(msgBadConfirmation);
		$('util_email_bis').clear();
		$('util_email_bis').focus();
	}
	else if (util_accepte_partenaires_val == "") {
		alerte(msgDonneesPersos);
	}
	else {
		var ladate = new Date();
		var url = pathSite+"inc/newsletter_abonnement_ok.asp";
 		url += "?anticache="+ladate.getTime();
		
		switchElmt('btnNewsAbo', 'loaderNewsAbo');
		
		var myAjax = new Ajax.Request(
			url,
			{
				method: 'post',
				asynchronous: true,
				contentType:  'application/x-www-form-urlencoded',
				encoding:     'UTF-8',
				parameters: {
					util_email : $F('util_email'),
					util_email_bis : $F('util_email_bis'),
					util_pays : util_pays_val,
					util_langue : util_langue_val,
					util_civilite : $F('util_civilite'),
					util_nom : $F('util_nom'),
					util_prenom : $F('util_prenom'),
					util_age : $F('util_age'),
					util_voyage_classe : $F('util_voyage_classe'),
					util_voyage_raisons : $F('util_voyage_raisons'),
					util_voyage_frequence : $F('util_voyage_frequence'),
					util_accepte_partenaires : util_accepte_partenaires_val,
					urlReferer : urlReferer
				},
				onSuccess: function(transport){
					if (parseInt(transport.responseText) > 0) alerte(msgMatter);
					else {
						setTimeout("affMsgNewsOk('"+strEmail+"','"+sens+"','"+lang+"')", 500);
						new Effect.toggle('blocNewsAbos', 'blind', {duration:0.2});
					}
				}, 
				onFailure: function(){
					switchElmt('loaderNewsAbo', 'btnNewsAbo');
					alerte(msgMatter);
				}
			});
	}
	
	return false;
}

function affMsgNewsOk(strEmail, sens, lang) {
	setTimeout("cacheMsgNewsOk('"+strEmail+"','"+sens+"','"+lang+"')", 6000);
	new Effect.toggle('msgNewsAboOk', 'blind', {duration:0.2});
}

function cacheMsgNewsOk(strEmail, sens, lang) {
	setTimeout("cacheNewsAbo('"+strEmail+"','"+sens+"','"+lang+"')", 300);
	new Effect.toggle('msgNewsAboOk', 'blind', {duration:0.2});
}

function cacheNewsAbo(strEmail, sens, lang) {
	initNewsAboForm(strEmail, sens, lang);
	switchElmt('loaderNewsAbo', 'btnNewsAbo');
	
	new Effect.toggle('blocNewsAbos', 'blind', {duration:0.2});
}

/************ fin fonctions sur l'abonnoment newsletter ************/


/************ fonctions sur le bloc de réservation ************/

function switchElmt(idSource, idCible) {
	$(idSource).removeClassName('displayBlock');
	$(idSource).addClassName('displayNone');
	
	$(idCible).removeClassName('displayNone');
	$(idCible).addClassName('displayBlock');
}

function activeTxt(classSource, classCible) {
	var childs = $('fields_fr').getElementsByClassName(classSource);
	childs.invoke('removeClassName', classSource).invoke('addClassName', classCible);
}

function activeTxtById(classSource, classCible, idCible) {
	$(idCible).removeClassName(classSource);
	$(idCible).addClassName(classCible);
}

function activeFields(className, valeur) {
	$$('.'+className).invoke('writeAttribute', 'disabled', valeur);
}

function majTypeTrajet(strType) {
	$('voyageType').value = strType;
}

function cocheAllerRetour(strType) {
	majTypeTrajet(strType);
	
	switchElmt.defer('link_aller_retour', 'coche_aller_retour');
	switchElmt.defer('coche_aller_simple', 'link_aller_simple');
	activeTxtById.defer('txt_unactive', 'txt_active', 'txt_date_retour');
	activeFields.defer('disabledField', false);
	switchElmt.defer('field_date_retour_off', 'field_date_retour_on');
}

function cocheAllerSimple(strType) {
	majTypeTrajet(strType);
	
	switchElmt.defer('link_aller_simple', 'coche_aller_simple');
	switchElmt.defer('coche_aller_retour', 'link_aller_retour');
	activeTxtById.defer('txt_active', 'txt_unactive', 'txt_date_retour');
	activeFields.defer('disabledField', 'disabled');
	switchElmt.defer('field_date_retour_on', 'field_date_retour_off');
}

function cocheClasse(suffixe1, suffixe2, val) {
	$('classeNumber').value = val;
	//alert($F('classeNumber'));
	
	switchElmt.defer('link_'+suffixe1, 'coche_'+suffixe1);
	switchElmt.defer('coche_'+suffixe2, 'link_'+suffixe2);
}

function valoriseFirstSelect(strID, optID) {
    var where = (navigator.appName == "Microsoft Internet Explorer") ? -1 : null;
	var span =	document.createElement('span');
	span.innerHTML = $F(optID);
	var elmt = document.createElement("option");
	elmt.text = span.innerHTML;
	elmt.value = "";
	$(strID).add(elmt, where);
	$(strID).selectedIndex = 0;
}

function valoriseSelect(strID, oCible) {
    var where = (navigator.appName == "Microsoft Internet Explorer") ? -1 : null;
	
	if (oCible != undefined) {
		for (var i=0; i<oCible.length; i++) {
			switch (global_lang) {
				case 'EN':
					var iText = 2;
					break;
				case 'DE':
					var iText = 1;
					break;
				default:
					var iText = 0;
			}
			var span =	document.createElement('span');
			span.innerHTML = oCible[i].text.split("|")[iText];
			var newElem = document.createElement("option");
			newElem.text = span.innerHTML;
			newElem.value = oCible[i].value;
			$(strID).add(newElem, where);
		}
	}
}

function initReservation() {
	valoriseFirstSelect('villeDep_fr', 'optVille0');
	valoriseFirstSelect('villeDest_fr', 'optVille0');
	valoriseSelect('villeDep_fr', eval("dep_france_suisse")[0]);

	valoriseFirstSelect('villeDep_de', 'optVille0');
	valoriseFirstSelect('villeDest_de', 'optVille0');
	valoriseSelect('villeDep_de', eval("dep_suisse_france")[0]);
	
	switch (global_sens) {
		case 'france_suisse':
			var pays_retrait = 'fr';
			$('voyageType').value = "ALLER_RETOUR";
			break;
		case 'suisse_france':
			var pays_retrait = 'de';
			$('voyageType').value = "ALLER_SIMPLE";
			break;
		default:
			var pays_retrait = 'other';
	}
	
	var oSelect = $('selectRetrait');
	for (i=0; i<oSelect.options.length; i++) {
		var valOption = oSelect.options[i].value;
		if (valOption == pays_retrait) {
			oSelect.selectedIndex = i;
			break;
		}
	}
	
	$('paysDistribution').value = pays_retrait.toUpperCase();
	$('classeNumber').value = "2";
	
	activeFields.defer('disabledField', false);
	
	$('fields_'+pays_retrait).removeClassName('displayNone');
	$('fields_'+pays_retrait).addClassName('displayBlock');
	
	$('fields_current').value = 'fields_'+pays_retrait;
}

function selectPaysRetrait(chooser) {
	var pays_retrait = chooser.options[chooser.selectedIndex].value;
	
	$($F('fields_current')).removeClassName('displayBlock');
	$($F('fields_current')).addClassName('displayNone');
	
	$('fields_'+pays_retrait).removeClassName('displayNone');
	$('fields_'+pays_retrait).addClassName('displayBlock');
	
	$('fields_current').value = 'fields_'+pays_retrait;
	
	$('paysDistribution').value = pays_retrait.toUpperCase();
	if (pays_retrait == 'de') $('voyageType').value = "ALLER_SIMPLE";
	
	if (pays_retrait == 'other') setTimeout("redirectReservation()", 2000);
}

function setVilles(chooser, pays_retrait) {
	var sens = (pays_retrait == 'fr') ? 'france_suisse' : 'suisse_france';
	
	while ($('villeDest_'+pays_retrait).options.length) {$('villeDest_'+pays_retrait).remove(0);}
	valoriseFirstSelect('villeDest_'+pays_retrait, 'optVille0');
	
	var choice = chooser.options[chooser.selectedIndex].value;
	var oDest = eval("dest_"+sens)[choice];
	
	if (choice != "") valoriseSelect('villeDest_'+pays_retrait, oDest);
}

function verifSaisieReservation() {
	if (($F('paysDistribution') != "FR") && ($F('paysDistribution') != "DE")) redirectReservation();
	else {
		var pays_retrait = $F('paysDistribution').toLowerCase();
	
		var msgErr = "";
		var oErr;
		
		var re_date = /^(\d+)\/(\d+)\/(\d+)/;
		var is_date = true;
		
		var ladate = new Date();
		var checkUrl = pathSite+"inc/check_date.asp";
		var compareUrl = pathSite+"inc/compare_date.asp";
		
		switch (global_lang) {
			case 'EN':
				var msgDepVille = "Veuillez choisir votre ville de d&eacute;part dans liste correspondante.";
				var msgArrVille = "Veuillez choisir votre ville de destination dans liste correspondante.";
				var msgFormatDateDu = "La date de d&eacute;part est incorrecte.";
				var msgFormatDateAu = "La date de retour est incorrecte.";
				var msgDateDu = "La date de d&eacute;part doit &ecirc;tre post&eacute;rieure &agrave; la date actuelle.";
				var msgDateAu = "La date de d&eacute;part ne doit pas &ecirc;tre post&eacute;rieure &agrave; celle de retour.";
				var msgPersonnes = "Le nombre maximum de voyageurs est de 6.";
				break;
			case 'DE':
				var msgDepVille = "Veuillez choisir votre ville de d&eacute;part dans liste correspondante.";
				var msgArrVille = "Veuillez choisir votre ville de destination dans liste correspondante.";
				var msgFormatDateDu = "La date de d&eacute;part est incorrecte.";
				var msgFormatDateAu = "La date de retour est incorrecte.";
				var msgDateDu = "La date de d&eacute;part doit &ecirc;tre post&eacute;rieure &agrave; la date actuelle.";
				var msgDateAu = "La date de d&eacute;part ne doit pas &ecirc;tre post&eacute;rieure &agrave; celle de retour.";
				var msgPersonnes = "Le nombre maximum de voyageurs est de 6.";
				break;
			default:
				var msgDepVille = "Veuillez choisir votre ville de d&eacute;part dans liste correspondante.";
				var msgArrVille = "Veuillez choisir votre ville de destination dans liste correspondante.";
				var msgFormatDateDu = "La date de d&eacute;part est incorrecte.";
				var msgFormatDateAu = "La date de retour est incorrecte.";
				var msgDateDu = "La date de d&eacute;part doit &ecirc;tre post&eacute;rieure &agrave; la date actuelle.";
				var msgDateAu = "La date de d&eacute;part ne doit pas &ecirc;tre post&eacute;rieure &agrave; celle de retour.";
				var msgPersonnes = "Le nombre maximum de voyageurs est de 6.";
		}
		
		var jj = $F('date_depart_'+pays_retrait).substring(0, $F('date_depart_'+pays_retrait).indexOf("/", 0));
		var tmp_date = $F('date_depart_'+pays_retrait).substring(jj.length+1, $F('date_depart_'+pays_retrait).length);
		var mm = tmp_date.substring(0, tmp_date.indexOf("/", 0));
		var aaaa = tmp_date.substring(tmp_date.indexOf("/", 0)+1, tmp_date.length);
		
		var nbAdultes = parseInt($('nbAdultes').options[$('nbAdultes').selectedIndex].value);
		var nbSeniors = parseInt($('nbSeniors').options[$('nbSeniors').selectedIndex].value);
		var nbJeunes = parseInt($('nbJeunes').options[$('nbJeunes').selectedIndex].value);
		var nbEnfants = parseInt($('nbEnfants').options[$('nbEnfants').selectedIndex].value);
		var nbTotal = nbAdultes+nbSeniors+nbJeunes+nbEnfants;
		
		if ($('villeDep_'+pays_retrait).options[$('villeDep_'+pays_retrait).selectedIndex].value == "") msgErr = msgDepVille;
		else if ($('villeDest_'+pays_retrait).options[$('villeDest_'+pays_retrait).selectedIndex].value == "") msgErr = msgArrVille;
		else if (!re_date.exec($F('date_depart_'+pays_retrait))) msgErr = msgFormatDateDu;
		else if (file(checkUrl+"?date_saisie="+$F('date_depart_'+pays_retrait)+"&anticache="+ladate.getTime()).responseText == "ko") msgErr = msgFormatDateDu;
		else if (file(compareUrl+"?date_1=&date_2="+$F('date_depart_'+pays_retrait)+"&anticache="+ladate.getTime()).responseText < 0) msgErr = msgDateDu;
		else if ((parseInt(ladate.getDate()) == parseInt(jj)) && (parseInt(ladate.getMonth()+1) == parseInt(mm)) && (parseInt(ladate.getFullYear()) == parseInt(aaaa))) {
			if (parseInt(ladate.getHours()) > parseInt($('timeAller_'+pays_retrait).options[$('timeAller_'+pays_retrait).selectedIndex].value)) msgErr = msgDateDu;
			else msgErr = "";
		}
		else if ($F('voyageType') == "ALLER_RETOUR") {
			var jj_retour = $F('date_arrivee_'+pays_retrait).substring(0, $F('date_arrivee_'+pays_retrait).indexOf("/", 0));
			var tmp_date_retour = $F('date_arrivee_'+pays_retrait).substring(jj_retour.length+1, $F('date_arrivee_'+pays_retrait).length);
			var mm_retour = tmp_date_retour.substring(0, tmp_date_retour.indexOf("/", 0));
			var aaaa_retour = tmp_date_retour.substring(tmp_date_retour.indexOf("/", 0)+1, tmp_date_retour.length);
		
			if (!re_date.exec($F('date_arrivee_'+pays_retrait))) msgErr = msgFormatDateAu;
			else if (file(checkUrl+"?date_saisie="+$F('date_arrivee_'+pays_retrait)+"&anticache="+ladate.getTime()).responseText == "ko") msgErr = msgFormatDateAu;
			else if (file(compareUrl+"?date_1="+$F('date_depart_'+pays_retrait)+"&date_2="+$F('date_arrivee_'+pays_retrait)+"&anticache="+ladate.getTime()).responseText < 0) msgErr = msgDateAu;
			else if ((parseInt(jj_retour) == parseInt(jj)) && (parseInt(mm_retour) == parseInt(mm)) && (parseInt(aaaa_retour) == parseInt(aaaa))) {
				if (parseInt($('timeAller_'+pays_retrait).options[$('timeAller_'+pays_retrait).selectedIndex].value) >= parseInt($('timeRetour_'+pays_retrait).options[$('timeRetour_'+pays_retrait).selectedIndex].value)) msgErr = msgDateAu;
				else msgErr = "";
			}
			else msgErr = "";
		}
		else if ((nbAdultes+nbSeniors+nbJeunes+nbEnfants) > 6) msgErr = msgPersonnes;
		else msgErr = "";
		
		if (msgErr.length == 0) redirectReservation();
		else {
			alerte(msgErr);
			return false;
		}
	}
	
	return false;
}

function redirectReservation() {
	var url;
	var pays_retrait = $F('paysDistribution').toLowerCase();
	
	switch (global_lang) {
		case 'EN':
			var iVal = 2;
			break;
		case 'DE':
			var iVal = 1;
			break;
		default:
			var iVal = 0;
	}
			
	switch ($F('paysDistribution')) {
		case 'FR':
		    //alert($F('date_depart_'+pays_retrait));
			//var jj = $F('date_depart_'+pays_retrait).substring(0, $F('date_depart_'+pays_retrait).indexOf("/", 0));
			var jj = $F('date_depart_'+pays_retrait);
			var tmp_date = $F('date_depart_'+pays_retrait).substring(jj.length+1, $F('date_depart_'+pays_retrait).length);
			var mm = tmp_date.substring(0, tmp_date.indexOf("/", 0));
			
			var nbAdultes = parseInt($('nbAdultes').options[$('nbAdultes').selectedIndex].value);
			var nbSeniors = parseInt($('nbSeniors').options[$('nbSeniors').selectedIndex].value);
			var nbJeunes = parseInt($('nbJeunes').options[$('nbJeunes').selectedIndex].value);
			var nbEnfants = parseInt($('nbEnfants').options[$('nbEnfants').selectedIndex].value);
			var nbTotal = nbAdultes+nbSeniors+nbJeunes+nbEnfants;
			var cpt = 1;
		
		/*
			url = $F('urlVSC');
			url += "&PAYS_DISTRIBUTION="+$F('paysDistribution');
			url += "&ORIGINE="+$('villeDep_'+pays_retrait).options[$('villeDep_'+pays_retrait).selectedIndex].value.split("|")[iVal].toUpperCase();
			url += "&DESTINATION="+$('villeDest_'+pays_retrait).options[$('villeDest_'+pays_retrait).selectedIndex].value.split("|")[iVal].toUpperCase();
			url += "&JOUR_ALLER="+parseInt(jj);
			url += "&MOIS_ALLER="+parseInt(mm);
			url += "&HEURE_ALLER="+parseInt($F('timeAller_'+pays_retrait));
			url += "&VOYAGE_TYPE="+$F('voyageType');
			if ($F('classeNumber') == "1") url += "&CLASSE=A";
			else url += "&CLASSE=B";
			url += "&NB_PASSAGERS="+nbTotal;
			for (i=0; i<nbAdultes; i++) {url += "&AGE_PASSAGER_"+(i+cpt)+"=26";}
			cpt = nbAdultes;
			for (i=0; i<nbSeniors; i++) {url += "&AGE_PASSAGER_"+(i+cpt)+"=60";}
			cpt = nbSeniors+nbAdultes;
			for (i=0; i<nbJeunes; i++) {url += "&AGE_PASSAGER_"+(i+cpt)+"=12";}
			cpt = nbSeniors+nbAdultes+nbJeunes;
			for (i=0; i<nbEnfants; i++) {url += "&AGE_PASSAGER_"+(i+cpt)+"=1";}
			
			if ($F('voyageType') == "ALLER_RETOUR") {
				var jj_retour = $F('date_arrivee_'+pays_retrait).substring(0, $F('date_arrivee_'+pays_retrait).indexOf("/", 0));
				var tmp_date_retour = $F('date_arrivee_'+pays_retrait).substring(jj_retour.length+1, $F('date_arrivee_'+pays_retrait).length);
				var mm_retour = tmp_date_retour.substring(0, tmp_date_retour.indexOf("/", 0));
				
				url += "&JOUR_RETOUR="+parseInt(jj_retour);
				url += "&MOIS_RETOUR="+parseInt(mm_retour);
				url += "&HEURE_RETOUR="+parseInt($F('timeRetour_'+pays_retrait));
			}
			*/
			
			url = $F('urlVSC');
			url += "&DISTRIBUTED_COUNTRY="+$F('paysDistribution');
			url += "&ORIGIN_CITY="+$('villeDep_'+pays_retrait).options[$('villeDep_'+pays_retrait).selectedIndex].value.split("|")[iVal].toUpperCase();
			url += "&DESTINATION_CITY="+$('villeDest_'+pays_retrait).options[$('villeDest_'+pays_retrait).selectedIndex].value.split("|")[iVal].toUpperCase();
			url += "&OUTWARD_DATE="+jj;
			//url += "&MOIS_ALLER="+parseInt(mm);
			url += "&OUTWARD_TIME="+parseInt($F('timeAller_'+pays_retrait));
			
			if ($F('classeNumber') == "1") url += "&COMFORT_CLASS=1";
			else url += "&COMFORT_CLASS=2";
			url += "&NB_PASSENGER="+nbTotal;
			for (i=0; i<nbAdultes; i++) {url += "&PASSENGER_"+(i+cpt)+"=ADULT";}
			cpt = nbAdultes+1;
			for (i=0; i<nbSeniors; i++) {url += "&PASSENGER_"+(i+cpt)+"=SENIOR";}
			cpt = nbSeniors+nbAdultes+1;
			for (i=0; i<nbJeunes; i++) {url += "&PASSENGER_"+(i+cpt)+"=YOUNG";}
			cpt = nbSeniors+nbAdultes+nbJeunes+1;
			for (i=0; i<nbEnfants; i++) {url += "&PASSENGER_"+(i+cpt)+"=CHILDREN";}
			
			if ($F('voyageType') == "ALLER_RETOUR") {
				//var jj_retour = $F('date_arrivee_'+pays_retrait).substring(0, $F('date_arrivee_'+pays_retrait).indexOf("/", 0));
				var jj_retour = $F('date_arrivee_'+pays_retrait);
				var tmp_date_retour = $F('date_arrivee_'+pays_retrait).substring(jj_retour.length+1, $F('date_arrivee_'+pays_retrait).length);
				var mm_retour = tmp_date_retour.substring(0, tmp_date_retour.indexOf("/", 0));
				
				url += "&TRAVEL_TYPE=AR";
				url += "&INWARD_DATE="+jj_retour;
				//url += "&MOIS_RETOUR="+parseInt(mm_retour);
				url += "&INWARD_TIME="+parseInt($F('timeRetour_'+pays_retrait));
			}else{
			    url += "&TRAVEL_TYPE=AS";
			}
			break;
		case 'DE':
			var jj = $F('date_depart_'+pays_retrait).substring(0, $F('date_depart_'+pays_retrait).indexOf("/", 0));
			var tmp_date = $F('date_depart_'+pays_retrait).substring(jj.length+1, $F('date_depart_'+pays_retrait).length);
			var mm = tmp_date.substring(0, tmp_date.indexOf("/", 0));
			var aaaa = tmp_date.substring(tmp_date.indexOf("/", 0)+1, tmp_date.length);
			var aa = aaaa.substring(2, 4);
			var hh = $F('timeAller_'+pays_retrait);
			
			var jjInt = parseInt(jj);
			if (jjInt < 10) jj = "0"+jjInt;
			var mmInt = parseInt(mm);
			if (mmInt < 10) mm = "0"+mmInt;
			var hhInt = parseInt(hh);
			if (hh < 10) hh = "0"+hhInt;
			
			url = $F('urlCFF');
			url += "&von="+$('villeDep_'+pays_retrait).options[$('villeDep_'+pays_retrait).selectedIndex].value.split("|")[iVal];
			url += "&nach="+$('villeDest_'+pays_retrait).options[$('villeDest_'+pays_retrait).selectedIndex].value.split("|")[iVal];
			url += "&reisedatum="+jj+"."+mm+"."+aa;
			url += "&reisezeit="+hh+":00";
			
			break;
		default:
			url = $F('urlEU');
	}
	
	// document.write(url);
	//alert(url);
	var newWindow = window.open(url, 'reservation');
	newWindow.focus();
}

/************ fin fonctions sur le bloc de réservation ************/


/************ fonctions sur le module eco ************/

function goToModuleEco(path) {
	document.location.href = path+"footer/eco_form.asp";
}

function eco_majTypeTrajet(strType) {
	$('eco_voyageType').value = strType;
	// alert($F('eco_voyageType'));
}

function eco_cocheAllerSimple(strType) {
	eco_majTypeTrajet(strType);
	
	switchElmt.defer('eco_link_aller_simple', 'eco_coche_aller_simple');
	switchElmt.defer('eco_coche_aller_retour', 'eco_link_aller_retour');
}

function eco_cocheAllerRetour(strType) {
	eco_majTypeTrajet(strType);
	
	switchElmt.defer('eco_link_aller_retour', 'eco_coche_aller_retour');
	switchElmt.defer('eco_coche_aller_simple', 'eco_link_aller_simple');
}

function eco_initVars() {
	$('eco_voyageType').value = "ALLER_RETOUR";
}


function eco_initVilles() {
	valoriseFirstSelect('eco_villeDep', 'eco_ville_option_0');
	valoriseFirstSelect('eco_villeDest', 'eco_ville_option_0');
	
	var oDep = eco_dep_ville;
	valoriseSelect('eco_villeDep', oDep[0]);
}

function eco_setVilles(chooser) {
	while ($('eco_villeDest').options.length) {$('eco_villeDest').remove(0);}
	valoriseFirstSelect('eco_villeDest', 'eco_ville_option_0');
	
	var choice = chooser.options[chooser.selectedIndex].value;
	var oDest = eco_dest_ville[choice];
	
	if (choice != "") valoriseSelect('eco_villeDest', oDest);
}

function eco_initVoiture(lang) {
	valoriseFirstSelect('eco_voitureCritere1', 'eco_puissance_option_0');
	valoriseFirstSelect('eco_voitureCritere2', 'eco_motorisation_option_0');
	
	var oDep = eval("eco_dep_voiture_"+lang);
	valoriseSelect('eco_voitureCritere1', oDep[0]);
}

function eco_setPuissance(chooser, lang) {
	while ($('eco_voitureCritere2').options.length) {$('eco_voitureCritere2').remove(0);}
	valoriseFirstSelect('eco_voitureCritere2', 'eco_motorisation_option_0');
	
	var choice = chooser.options[chooser.selectedIndex].value;
	var oDest = eval("eco_dest_voiture_"+lang)[choice];
	
	if (choice != "") valoriseSelect('eco_voitureCritere2', oDest);
	
	$('eco_voitureCritere2').focus();
}

function eco_initAvion(lang) {
	valoriseFirstSelect('eco_avionCritere1', 'eco_classe_option_0');
	
	var oDep = eval("eco_dep_avion_"+lang);
	valoriseSelect('eco_avionCritere1', oDep[0]);
}

function verifSaisieEco(form) {
	var msgErr = "";
	var oErr;
	
	switch (global_lang) {
		case 'EN':
			var msgDepVille = "Veuillez choisir votre ville de d&eacute;part dans liste correspondante.";
			var msgArrVille = "Veuillez choisir votre ville de destination dans liste correspondante.";
			break;
		case 'DE':
			var msgDepVille = "Veuillez choisir votre ville de d&eacute;part dans liste correspondante.";
			var msgArrVille = "Veuillez choisir votre ville de destination dans liste correspondante.";
			break;
		default:
			var msgDepVille = "Veuillez choisir votre ville de d&eacute;part dans liste correspondante.";
			var msgArrVille = "Veuillez choisir votre ville de destination dans liste correspondante.";
	}
	
	if ($('eco_villeDep').options[$('eco_villeDep').selectedIndex].value == "") {
		$('eco_villeDep').focus();
		msgErr = msgDepVille;
	}
	else if ($('eco_villeDest').options[$('eco_villeDest').selectedIndex].value == "") {
		$('eco_villeDest').focus();
		msgErr = msgArrVille;
	}
	else msgErr = "";
	
	if (msgErr.length == 0) form.submit();
	else {
		alerte(msgErr);
		return false;
	}
	
	return false;
}

/************ fin fonctions sur le module eco ************/


/************ fonctions sur les bons plans ************/

function developpeDesc(oLink, idDesc, idDescMini) {
	var delayMini = 0.0;
	var size = oLink.style.fontSize;
	
	if ($(idDesc).style.display == "none") {
		oLink.innerHTML = "<span>...-</span>";
		delayMini = 0.0;
	}
	else {
		oLink.innerHTML = "<span>+...</span>";
		delayMini = 0.5;
	}
	
	oLink.style.fontSize = size;
	var oSpan = oLink.getElementsByTagName('span');
	oSpan[0].style.fontSize = size;
	
	new Effect.toggle(idDescMini, 'blind', {duration:delayMini});
	new Effect.toggle(idDesc, 'blind', {duration:0.5});
}

/************ fin fonctions sur les bons plans ************/


/************ fonctions utiles ************/

function file(fichier) {
	if (window.XMLHttpRequest) // FIREFOX
		xhr_object = new XMLHttpRequest();
	else if (window.ActiveXObject) // IE
		xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
	else
		return(false);
	
	xhr_object.open("GET", fichier, false);
	xhr_object.send(null);
	
	return xhr_object;
}

String.prototype.RLTrim = function () {
	/* =========================
 	supprimer les espaces initiaux et finaux
 	==========================
 	exemples :
 	alert("    exemple    ".RLTrim()); */
 	return this.replace(/(^\s*)|(\s*$)/g,"");
};

function buildSpan(msg) {
	var y			=	document.createElement('span');
	y.innerHTML     =	msg;
	
	return y.innerHTML;
}

function alerte(msg) {
	alert(buildSpan(msg));
}

function confirme(msg) {
	if (window.confirm(buildSpan(msg))) return true;
	else return false;
}

/*************  ouverture pop-up au centre de l'écran ****************
* url=> url de la page à ouvrir
* l=> largeur de la page
* h=> hauteur de la page
* arg => fenetre redimensionable ou non. true/false
*/
function openPop(url,l,h,arg) {
	option=(arg===true?', menubar=no, status=no, scrollbars=yes, resizable=yes':'');
	newWindow= window.open(url,'popup','width='+l+',height='+h+',left='+(screen.width-l)/2+',top='+((screen.height-h)/2)+option);
	newWindow.focus();
	return false;
}

// fonction de tracking
function tracking(urlTo, target, identifiant) {
	var ladate = new Date();
	var url = pathSite+"inc/tracking.asp";
	var pars = "identifiant="+identifiant;
	pars += "&lang="+global_lang;
	pars += "&sens="+global_sens.toLowerCase();
	pars += "&page="+global_page.toLowerCase();
 	pars += "&anticache="+ladate.getTime();

	var myAjax = new Ajax.Request(
		url,
		{
			method: 'get',
			parameters: pars,
			onSuccess: function(transport) {
				if (target.toLowerCase() == "_blank") window.open(urlTo);
				else document.location.href = urlTo;
			}, 
			onFailure: function(transport) {}
		});
	
	return false;
}

function getQuerystring(target) {
	var splitUrl = window.location.href.split("?");
	
	if (splitUrl.length > 1) {
		var pars = splitUrl[1].split("&");
		for (var i=0; i<pars.length; i++) {
			if (pars[i].split("=")[0] == target) {
				var val = pars[i].split("=")[1];
				return val;
			}
		}
	}
	
	return false;
}

/********** fin fonctions utiles **********/


/************ fonctions sur lyria mag ************/

function AjoutCarnetLink() {
	$$('a.link-ajout-carnet').invoke('AjoutCarnetLinkListen');
}

function AjoutCarnetModal(params) {
	var ladate = new Date();
	var url = pathSite+'inc/carnet_de_voyage_ajout.asp';
	url += '?anticache='+ladate.getTime();
	
	Modalbox.show(url, {title: 'Modalbox', overlayClose: false, width: 600, method: 'post', params:params, afterLoad: function() { Event.observe($('popup_fermer'), 'click', function() { Modalbox.hide(); }); }, beforeHide: function() { }, afterHide: function() { }});
}

Element.addMethods({
	AjoutCarnetLinkListen: function(element) {
    	var element = $(element);
		Event.observe(element, 'click', function() { this.AjoutCarnetLinkClick(); });
	},
	AjoutCarnetLinkClick: function(element) {
    	var element = $(element);
		
		var num = element.readAttribute("num") ? element.readAttribute("num") : $F('idPage');
		var urlReferer = $F('urlReferer');
		
		var params = {num : num, lang : global_lang, urlReferer : urlReferer}
		
		switch (global_lang) {
			case 'EN':
				var msgConfirmAjout = "Do you want to add this article to your diary ?";
				break;
			case 'DE':
				var msgConfirmAjout = "ZU MEINEM REISEPLANER HINZUFÜGEN";
				break;
			default:
				var msgConfirmAjout = "Ajouter &agrave; votre carnet de voyage ?";
		}
		
		var ladate = new Date();
		var url = pathSite+"inc/carnet_de_voyage_check_session.asp";
		url += "?anticache="+ladate.getTime();
		
		if (confirme(msgConfirmAjout)) {
			var myAjax = new Ajax.Request(
				url,
				{
					asynchronous: true,
					onSuccess: function(transport) {
						if (isNaN(parseInt(transport.responseText))) {
							url = pathSite+"inc/carnet_de_voyage_recup_url.asp";
							
							var pars = "lang="+global_lang;
							pars += "&anticache="+ladate.getTime();
						
							var myAjax = new Ajax.Request(
								url,
								{
									method: 'get',
									parameters: pars,
									onSuccess: function(transport) {
										document.location.href = transport.responseText+"?num="+num;
									}, 
									onFailure: function(transport) {}
								});
						}
						else AjoutCarnetModal(params);
					}, 
					onFailure: function(transport) {}
				});
		}
	}
});
/************ fin fonctions sur lyria mag ************/



