/** FONTIONS EXECUTEES AU CHARGEMENT DU DOM **/ $(document).ready(function() { /** infos bulles (descriptif_residence.tpl) **/ $('[id^="infobulle_"] i').mouseenter(function () { if($('p.texte_bulle').html() != '') { $('div#infobulle_frais').show('slide', {direction: 'up'}, 500); } }).mouseleave(function () { $('div#infobulle_frais').hide('slide', {direction: 'up'}, 500); }); /** Page logements **/ if($('div#menu_descriptifs').length != 0) { /** Gestion du la galerie "AD Gallery" **/ if($('div[id^=adGallery]').length != 0) { galleries = $('.ad-gallery').adGallery({ loader_image: 'site/media/recherche/ajax-loader.gif', width: 350, height: 253, animation_speed: 600, // Which ever effect is used to switch images, how long should it take? slideshow: { enable: true, autostart: true, speed: 4000, // countdown_prefix: '[', // Wrap around the countdown // countdown_sufix: ']', stop_on_scroll: false, // Should the slideshow stop if the user scrolls the thumb list? onStart: function() { $('span.ad-slideshow-start').css('display', 'none'); $('span.ad-slideshow-stop').css('display', 'block'); noCountDown(); }, onStop: function() { $('span.ad-slideshow-start').css('display', 'block'); $('span.ad-slideshow-stop').css('display', 'none'); } }, // All callbacks has the AdGallery objects as 'this' reference callbacks: { // This gets fired right after the new_image is fully visible afterImageVisible: function() { setTimeout('noCountDown()', 100); } } }); } /** Vérifie que l'onglet selectionné est bien celui qui correspond a l'ancre dans l'URL **/ checkOnglet(); /** Gere l'affichage du nombre de bons plans sur la page produit en fonction de la hauteur du descriptif **/ redimDescriptif(); } if($('div#pasDeDispo').length != 0) { $('div#bons_plans').css('margin-top', '0'); } $('div#prixDefaut div#defautDroite a, div#accesResaLag a').click(function(){ $('form#formPrixDefaut').submit(); }); /** Bouton pour les contres propositions sur la page résidence **/ $('div#contrePropositions a').click(function() { if($('input#semaine').prop('checked') == true) { $('input#typeRecherche').val('semaine'); $('input#choixDuree').val($('#nbSemaines').val()); } else if($('input#court_sejour').prop('checked') == true) { $('input#typeRecherche').val('court'); $('input#choixDuree').val($('#nbJours').val()); } else { var nbJours = calculNbJours($('#dateDebut').val(), $('#dateFin').val(), $('#dateFin').datepicker('option', 'dateFormat')); $('input#choixDuree').val(nbJours); if(nbJours < 7 || (nbJours > 7 && nbJours % 7 != 0)) { $('input#typeRecherche').val('court'); $('input#date_debut').val($('#dateDebut').val()); $('input#date_fin').val($('#dateFin').val()); } else { $('input#typeRecherche').val('semaine'); if($('div#infoFrais:not(:hidden)').length > 0) { $('input#date_debut').val($('div#infoFrais span#infoFrais_dateDebut').val()); $('input#date_fin').val($('div#infoFrais span#infoFrais_dateFin').val()); } else { // $('input#date_debut').val(dateConverter($('input#dateDebutDefaut').val(), false)); $('input#date_debut').val(dateConverter($('input#dateDebut.hasDatepicker').val(), false)); $('input#date_fin').val(dateConverter($('input#dateFin.hasDatepicker').val(), false)); } } } $('form#formulaireContrePropositions').submit(); }); }); // Faire bouger l'infobulle en fonction de la position du curseur function move(e) { if (navigator.appName != "Microsoft Internet Explorer") // Si on est pas sous IE { $('div.tooltip').css("left" , e.pageX + 8 +"px"); $('div.tooltip').css("top" , e.pageY - 10 + "px"); } else { if(browserVersion() == 'Internet Explorer 6' || browserVersion() == 'Internet Explorer 7') { $('div.tooltip').css("left" , 6 + event.x + document.documentElement.scrollLeft + "px"); $('div.tooltip').css("top" , event.y + document.documentElement.scrollTop - 13 + "px"); } else { $('div.tooltip').css("left" , 6 + event.x + "px"); $('div.tooltip').css("top" , event.y - 13 + "px"); } } } /** retourne l'objet de l'élément dont l'id est passé en parametre **/ function noCountDown() { $('span.ad-slideshow-countdown').css('display', 'none'); } /** retourne l'objet de l'élément dont l'id est passé en parametre **/ function validerBonPlan(id) { var index = id.split('_', 3); // alert(index[2]); $('form#form_bp_' + index[2]).submit(); return false; } /** ouvre le popup des visites 360° **/ function ouvrirVisite360(url) { var width = 780; var height = 500; var left = 200; var top = 300; var configuration = "'scrollbars=no, toolbar=no, menubar=no, location=no, directories=no, status=no, resizable=no, width="+width+", height="+height+" left="+left+", top="+top+"'"; // alert(url); // alert(configuration); window.open(url, 'visite360', configuration); } // var tab_rubriques = new Array(); // var tab_rubriques_name = new Array(); // var tab_rubriques_nb = new Array(); /** création du tableau des rubriques choisies pour l'appel AJAX (on ne l'utilise plus, la gestion des rubriques en ajax se fait directement lors du click sur le bouton calculer) **/ /* function ajout_rubrique(id,name) { if(getId(id).selectedIndex == 0) { //alert('nb de rubrique = 0 detecte pour element = '+name); tab_rubriques[name] = 0; } else { tab_rubriques[name] = new Array(); tab_rubriques[name].push(getId(id).selectedIndex); //ajoute l'element choisi au tableau } //alert(tab_rubriques[name].valueOf()); for (var name in tab_rubriques) { alert(tab_rubriques[name]); } // alert(tab_rubriques['liste_26K_165'].valueOf()); } */ /** création du tableau des rubriques choisies pour l'appel AJAX **/ /* function test4() { var tab_string = getId('ajax_tab_rubriques').value; var ajax_tab_rubriques = tab_string.split(','); // on parse une premiere fois la chaine afin d'en faire un tableau //affichage du tableau de rubriques for (var i=0; i"); } code_logement_debut = "S"; code_logement_fin = "2"; var data = ''; for (var i=0; i= 0) onglets_img[i-1].src = 'site/media/descriptifs/onglet_droite_inactif_actif.png'; // onglet_actif[0].src = 'site/media/descriptifs/onglet_droite_actif_inactif.png'; } else { onglets_a[i].className = 'onglet_inactif'; if(onglets_a[i+1] == 'onglet_actif') onglets_img[i].src = 'site/media/descriptifs/onglet_droite_inactif_actif.png'; else onglets_img[i].src = 'site/media/descriptifs/onglet_droite_inactif_inactif.png'; } } // getId('onglet_' + page).className = 'onglet_actif'; // onglet_actif[0].src = 'site/media/descriptifs/onglet_droite_actif_inactif.png'; // onglets_img[0].src = 'site/media/descriptifs/onglet_droite_actif_inactif.png'; if(page == 'residence') { // alert('resi'); $('div#prixDispo').css('display', 'block'); $('div#avisClients').css('display', 'block'); if(typeof(galleries) != "undefined") { if(galleries.length > 0) galleries[0].slideshow.start(); if(galleries.length != 1) galleries[1].slideshow.stop(); } getId('residence_gauche').style.display = 'block'; getId('residence_centre').style.display = 'block'; getId('station_gauche').style.display = 'none'; getId('station_centre').style.display = 'none'; getId('descriptif_ajax').innerHTML = ''; // Facebook & Google+ button if(navVersion() != '6') { if(getId('boutonsSociauxResidence').innerHTML == '') { var contenu = getId('boutonsSociauxStation').innerHTML; getId('boutonsSociauxStation').innerHTML = ''; getId('boutonsSociauxResidence').innerHTML = contenu; } } redimBP(); } else if(page == 'station') { // alert('stat'); $('div#prixDispo').css('display', 'block'); $('div#avisClients').css('display', 'none'); if(typeof(galleries) != "undefined") { if(galleries.length > 0) galleries[0].slideshow.stop(); if(galleries.length != 1) galleries[1].slideshow.start(); } getId('residence_gauche').style.display = 'none'; getId('residence_centre').style.display = 'none'; getId('station_gauche').style.display = 'block'; getId('station_centre').style.display = 'block'; getId('descriptif_ajax').innerHTML = ''; // Facebook & Google+ buttons if(navVersion() != '6') { if(getId('boutonsSociauxStation').innerHTML == '' && navVersion() != "6") { var contenu = getId('boutonsSociauxResidence').innerHTML; getId('boutonsSociauxResidence').innerHTML = ''; getId('boutonsSociauxStation').innerHTML = contenu; } } // setTimeout('redimBP()', 300); redimBP(); } else { $('div#prixDispo').css('display', 'none'); $('div#avisClients').css('display', 'none'); getId('residence_gauche').style.display = 'none'; getId('residence_centre').style.display = 'none'; getId('station_gauche').style.display = 'none'; getId('station_centre').style.display = 'none'; afficherDescriptif(page); } } } // unLoading(); } function getOnglet() { var url = document.location.toString(); var position = url.indexOf('#', 0); var onglet = url.substr(position + 1); return onglet; } /** Gere le nombre de bons plans affichés afin de ne pas laisser de gros blancs en dessous des descriptifs **/ function redimBP() { // alert('redim'); if(navVersion() != '6') { var onglet = getOnglet(); var hauteur_desc = getId(onglet + '_centre').offsetHeight + 56; // alert(hauteur_desc); if(navigator.appName != 'Microsoft Internet Explorer') var bons_plans = getId('bons_plans').getElementsByClassName('un_bp'); else var bons_plans = getElementsByClassNameIE(getId('bons_plans'), 'un_bp'); var nb_bp = bons_plans.length; // var count = 0; // alert(nb_bp); reinitBP(); for(var i = 0; i < nb_bp; i++) { // alert(getId('bons_plans').offsetHeight); if(getId('bons_plans').offsetHeight > hauteur_desc) getId('bp_' + i).style.display = 'none'; } // alert( // 'hauteur descriptif : ' + hauteur_desc + 'px' + "\n" + // 'hauteur bons plans : ' + getId('bons_plans').offsetHeight + 'px' + "\n\n" + // 'nombre de bons plans total : ' + nb_bp + "\n" + // 'nombre de bons plans affichés : ' + (afficher_bp + 1) // ); } } /** réinitialise les bons plans **/ function reinitBP() { if(navVersion() != '6') { if(navigator.appName != 'Microsoft Internet Explorer') var bons_plans = getId('bons_plans').getElementsByClassName('un_bp'); else var bons_plans = getElementsByClassNameIE(getId('bons_plans'), 'un_bp'); var nb_bp = bons_plans.length; for(var i = 0; i < nb_bp; i++) { getId('bp_' + i).style.display = 'block'; } } } /** change l'url et lance la fonction switchOnglet() (car pas de onload) dans le cas ou on est sur la page station/résidence, sinon lance loading() (switchOnglet() est lancée au onload) **/ function onclickOnglet(anchor, elem) { // alert(elem.id); if(verif_init_marche(elem) == false) return false; if(anchor == 'E' || anchor == 'H') { $('input#saisonProduit').val(anchor); $('form#formSwitchSaison').submit(); } else { document.location = '#' + anchor; switchOnglet(); } } /** redimensionne le bloc de texte sur les onglets en ajax (page residence, onglets région et station) **/ function redimDescriptif() { // if(getId('div_pays')) getId('pays_centre').style.width = (783 - getId('pays_gauche').offsetWidth) + "px"; if(getId('region_centre') && getId('region_gauche')) getId('region_centre').style.width = (792 - getId('region_gauche').offsetWidth) + "px"; else if(getId('region_centre') && !getId('region_gauche')) getId('region_centre').style.width = '792px'; if(getId('domaine_centre')) getId('domaine_centre').style.width = (784 - getId('domaine_gauche').offsetWidth) + "px"; } /** affiche la fenetre d'envoi a un ami en overlay **/ function afficherEnvoyerAmi(elem) { if(verif_init_marche(elem) == false) return false; opacityOn(); getId('bloc_envoyer_ami').style.display = 'block'; // getId('login_compte').innerHTML = '



Loading,
Wait a second...
'; } /** Fonctions AJAX **/ /** fonction pour l'affichage de la grille de prix **/ function afficherGrillePrix(elem, msg, idResidence, codeSaison, marche, typeProduit) // TypeProduit: LAGR = Lagrange ou vide = fournisseur { if(verif_init_marche(elem) == false) return false; opacityOn(); getId('grille_tarif').style.display = 'block'; var inner_content = ''; inner_content = '
'; inner_content += 'loading'; inner_content += 'loading'; inner_content += '

'+msg+'

'; inner_content += '
'; getId('grille_tarif').innerHTML = inner_content; // alert("La résolution de votre écran est : " + screen.width + " x " + screen.height + "\n\n" + // "screen.availWidth = " + screen.availWidth + " px\n" + // "screen.availHeight = " + screen.availHeight + " px\n" + // "window.innerWidth = " + window.innerWidth + " px\n" + // "window.innerHeight = " + window.innerHeight + " px\n" + // "document.body.offsetWidth = " + document.body.offsetWidth + " px\n" + // "document.body.offsetHeight = " + document.body.offsetHeight + " px\n" + // "document.documentElement.clientWidth = " + document.documentElement.clientWidth + " px\n" + // "document.documentElement.clientHeight = " + document.documentElement.clientHeight + " px\n" + // "screen.colorDepth = " + screen.colorDepth + " bits"); var xhr_grille_prix = createRequestObject(); //On fait disparaitre le bouton FacebookLike si on est sur IE if (navigator.appName == 'Microsoft Internet Explorer') { var contenu = getId('boutonsSociauxResidence'); contenu.style.display = "none"; contenu.style.visibility = "hidden"; } xhr_grille_prix.onreadystatechange = function () { if(xhr_grille_prix.readyState == 4) { if (xhr_grille_prix.status == 200) { var padding = window.innerWidth - document.documentElement.clientWidth; getId('grille_tarif').style.width = getId('grille_tarif').offsetWidth + 'px'; getId('grille_tarif').innerHTML = xhr_grille_prix.responseText; if (getId('grille_tarif').offsetHeight > document.documentElement.clientHeight || getId('grille_tarif').offsetHeight == document.documentElement.clientHeight) { document.body.style.overflowY = 'hidden'; if (navigator.appName != 'Microsoft Internet Explorer') { document.body.style.paddingRight = padding + 'px'; getId('grille_tarif').style.width = (document.documentElement.clientWidth) + 'px'; } else { getId('grille_tarif').style.left = ((document.documentElement.clientWidth - 955) / 2) + 'px'; getId('grille_tarif').style.width = '972px'; getId('grille_tarif').style.borderLeft = '1px solid #FFFFFF'; getId('grille_tarif').style.borderRight = '1px solid #FFFFFF'; } getId('grille_tarif').style.height = (document.documentElement.clientHeight) + 'px'; getId('grille_tarif').style.overflowY = 'auto'; } } else getId('grille_tarif').innerHTML = "Error: returned status code " + xhr_grille_prix.status + " " + xhr_grille_prix.statusText; } }; var data = 'typeProduit=' + typeProduit; data += "&idResidence=" + idResidence; data += "&codeSaison=" + codeSaison; xhr_grille_prix.open("POST", "site/includes/produits/descriptifs/ajax_grille_prix.php", true); xhr_grille_prix.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); // alert(data); xhr_grille_prix.send(data); } /** fonction pour l'affichage des pages de descriptifs (pays region domaine) **/ function afficherDescriptif(page) { // alert(page); var xhr_descriptif = createRequestObject(); xhr_descriptif.onreadystatechange = function () { if(xhr_descriptif.readyState == 4) { if(xhr_descriptif.status == 200) { // getId('div_residence').className = 'hide'; // getId('div_station').className = 'hide'; // getId('div_residence').style.display = 'none'; // getId('div_station').style.display = 'none'; // getId('descriptif_ajax').innerHTML = xhr_descriptif.responseText; var docXML = xhr_descriptif.responseXML; //Objet permettant de gérer le xml généré dans le script PHP var descriptif_ajax_xml = docXML.getElementsByTagName("descriptif"); var descriptif_ajax = descriptif_ajax_xml[0].firstChild.nodeValue; // alert(descriptif_ajax); getId('descriptif_ajax').innerHTML = descriptif_ajax; // Slimbox.scanPage(); redimDescriptif(); // redimBP(page); redimBP(); // setTimeout('redimDescriptif()', 25); } else getId('descriptif_ajax').innerHTML = "Error: returned status code " + xhr_descriptif.status + " " + xhr_descriptif.statusText; } }; //envoi des données au php var data = "station=" + codeStationTpl; data += "&logement=" + codeLogementTpl; data += "&residence=" + codeResidenceTpl; // alert(data); xhr_descriptif.open("POST", "site/includes/produits/descriptifs/ajax_descriptif_" + page + ".php", true); xhr_descriptif.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr_descriptif.send(data); // on envoi des paramètres au serveur , si on en envoi pas il faut mettre "null" } /** fonction pour vérifier l'onglet actif **/ function checkOnglet() { // loading(); var url = document.location.toString(); var position = url.indexOf('#', 0); if(position != -1) var onglet = url.substr(position + 1); else window.location += '#'; if(!in_array(onglet, ['residence', 'station', 'domaine', 'region', 'pays'])) { var xhr_check_onglet = createRequestObject(); xhr_check_onglet.onreadystatechange = function () { if(xhr_check_onglet.readyState == 4) { if (xhr_check_onglet.status == 200) { var docXML = xhr_check_onglet.responseXML; //Objet permettant de gérer le xml généré dans le script PHP var onglet_ajax_xml = docXML.getElementsByTagName("onglet"); var onglet = onglet_ajax_xml[0].firstChild.nodeValue; // alert(onglet); window.location += onglet; switchOnglet(); } else alert("Error: returned status code " + xhr_check_onglet.status + " " + xhr_check_onglet.statusText); } }; xhr_check_onglet.open("POST", "site/includes/ajax_check_onglet.php", true); xhr_check_onglet.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr_check_onglet.send(null); } else switchOnglet(); } /** fonction pour l'envoi à un ami **/ function envoyer_ami(email, nom, prenom, message) { //affichage du bloc de loading getId('loading_login_envoi_ami').innerHTML = getId('cadre_temporaire_login_envoi_ami').innerHTML; getId('loading_login_envoi_ami').style.display = 'block'; getId('loading_login_envoi_ami').style.visibility = 'visible'; //Desactivation du bouton valider pour eviter les doubles validation var save_button = desactiver_bouton('valider_envoyer_ami','#000000'); /* var save_onclick = getId('valider_envoyer_ami').onclick; var save_color = getId('valider_envoyer_ami').style.color; getId('valider_envoyer_ami').onclick = function() { void(0); } getId('valider_envoyer_ami').style.color = '#000000'; //permet de voir que la désactivation est effective */ var xhr_envoi_ami = createRequestObject(); xhr_envoi_ami.open("POST","site/includes/produits/descriptifs/ajax_envoi_ami.php",true); xhr_envoi_ami.onreadystatechange = function() { if(xhr_envoi_ami.readyState == 4) // la réponse est arrivée { if(xhr_envoi_ami.status == 200) // code html qui défini que la requête est OK , prêt à afficher { //alert('status 200 OK'); //alert(xhr_envoi_ami.responseText); //on injecte le recap dans le bloc prévu à cet effet getId('loading_login_envoi_ami').innerHTML = xhr_envoi_ami.responseText; //on cache le span code retour getId('code_retour_ami').style.display = 'none'; getId('code_retour_ami').style.visibility = 'hidden'; //Réactivation du bouton valider seulement si la requête à aboutie reactiver_bouton('valider_envoyer_ami', save_button); /* getId('valider_envoyer_ami').onclick = save_onclick; getId('valider_envoyer_ami').style.color = save_color; */ if(getId('code_retour_ami').innerHTML == 1) //mail envoyé { //On vide les champs du formulaire pour éviter que l'utilisateur envoit plusieurs mail getId('prenom_ami').value = ''; getId('nom_ami').value = ''; getId('email_ami').value = ''; getId('message_ami').value = ''; } } else { xhr_envoi_ami.abort(); } } } xhr_envoi_ami.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); // on envoi le header avec la requete //envoi des données au php var data = "email="+email; data += "&nom="+nom; data += "&prenom="+prenom; data += "&message="+message; //alert(data); xhr_envoi_ami.send(data); // on envoi des paramètres au serveur , si on en envoi pas il faut mettre "null" }