// Wait Plugin for jQuery http://www.inet411.com
(function($){
    $.fn.wait=function(option,options){
        milli=1000;
        if(option&&(typeof option=='function'||isNaN(option))){
            options=option;
        }else if(option){
            milli=option;
        }
        var defaults={
            msec:milli,
            onEnd:options
        },settings=$.extend({},defaults,options);
        if(typeof settings.onEnd=='function'){
            this.each(function(){
                setTimeout(settings.onEnd,settings.msec);
            });
            return this;
        }else{
            return this.queue('fx',function(){
                var self=this;
                setTimeout(function(){
                    $.dequeue(self);
                },settings.msec);
            });
        }
    }
})(jQuery);

var fill_captcha = function () {
    var captcha = $("#reqform .captcha");
    if (captcha.length>0){
        $.ajax({
            url			: "/ws/captcha",
            type		: "GET",
            dataType	: "text/html",
            cache: false,
            async : false,
            success		: function(data){
                if (data.length>0){
                    captcha.empty();
                    captcha.append(data);
                    var cap_in = $("#reqform input[name='captcha']");
                    cap_in.val('');
                }
            },
            error		: function(){
                    captcha.hide();
            }
        });
    }
}

var refill_captcha = function () {
    var captcha = $(".captchafield .captcha");
    if (captcha.length>0){
        $.ajax({
            url			: "/ws/re_captcha",
            type		: "GET",
            dataType	: "text/html",
            cache: false,
            async : false,
            success		: function(data){
                if (data.length>0){
                    captcha.empty();
                    captcha.append(data);
                    var cap_in = $(".captchafield .inputText");
                    cap_in.val('');
                }
            },
            error		: function(){
                    captcha.hide();
            }
        });
    }
}
// initialisation des différents composants
$(document).ready(function(){
    // expression régulière pour tester la validité d'un e-mail
    var mail1 = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
	var mail = new RegExp(/^([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]{3,}[; ]*)+$/i);
    var tel_reg = new RegExp(/^0[1-7][0-9]{8}$/i);

	// ajuste la largeur du menu   
    if($.support.boxModel){
        var w = 10; //ajout de 10px de sécurité pour firefox mac
        $("#menu ul:first>li").each(function(){w+=$(this).outerWidth()+2});
        $("#menu").width(w);
    }

    //actions d'ouverture sur les infos
    $(".bloc.infos h3, .bloc.infos h2").each(function(){
        var content	= $(this).parent().find(".content");
		content.css("display","block");
		var maxHeight = content.outerHeight()+40;
		if($(this).parent().parent().parent().parent().attr("id")=="left"){
			content.css("height",maxHeight+"px");
			$(this).addClass("on");
		}else{
			content.css("height","0px");
		}
        content.css("overflow","hidden");
        $(this).css("cursor","pointer");
        $(this).click(function(){
            var height = 0;
            if($(this).hasClass("on")){
                $(this).removeClass("on");
            }else{
                height = maxHeight;
                $(this).addClass("on");
            }
            content.animate({
                height : height
            });
        });
    });
    
    
    //actions d'ouverture sur les moyens d'accès
    $(".bloc.moyensAcces h3").each(function(){
        var content = $(this).parent().find(".content");
        content.css("display","block");
        var maxHeight = content.outerHeight()+40;
		content.css("height",maxHeight+"px");
		$(this).addClass("on");
        content.css("overflow","hidden");
        $(this).css("cursor","pointer");
        $(this).click(function(){

            var height = 0;
            if($(this).hasClass("on")){
                $(this).removeClass("on");
            }else{
                height = maxHeight;
                $(this).addClass("on");
            }
            content.animate({
                height : height
            });
        });
    });
    
    
    
    // action de focus et blur sur les input et textarea
    $("input[type=text], textarea").each(function(){
        var thisEl	= $(this);
        var oVal	= thisEl.val();
        thisEl.attr("oVal", oVal);
        thisEl.focus(function(){
            if(thisEl.val()==oVal)
                thisEl.val("");
        });
        thisEl.blur(function(){
            if($.trim(thisEl.val())=="")
                thisEl.val(oVal);
        });
    });

	
	// j'aime facebook
    $(".like").html('<iframe src="http://www.facebook.com/plugins/like.php?locale='+($("meta[content=en]").length==1?'en_US':'fr_FR')+'&amp;href='+encodeURIComponent(document.location.toString())+'&amp;layout=button_count&amp;show_faces=false&amp;width=120&amp;action=like&amp;font=arial&amp;colorscheme=light&amp;height=20" scrolling="no" frameborder="0" allowTransparency="true"></iframe>');
    		
	// partager sur facebook
	$("li a.facebook").click(function(){
		var titre		= encodeURIComponent(document.title);
		var lien		= encodeURIComponent(document.location.toString());
		popup('http://www.facebook.com/sharer.php?u='+lien+'&t='+titre, 630, 440, 'yes');
		return false;
	});

	// partager sur twitter
	$("li a.twitter").click(function(){
		var titre		= document.title;
		var lien		= document.location.toString();
		var publisher	= $("meta[name=author]").attr('content');
		var message = publisher+titre+lien;
		if ((publisher.length+titre.length+message.length)>132){
			titre = titre.substr(0,132-(publisher.length+lien.length));
		};

		popup('http://twitter.com/timeline/home?status=RT+@'+encodeURIComponent(publisher)+'+:+'+encodeURIComponent(titre)+'+'+encodeURIComponent(lien), 795, 440, 'yes');
		return false;
	});

	// réservation hotelière
    var resa			= $("#right .bloc.reservation, .accueil.reservation");
    if(resa.length>0 && typeof _DATA.reservation!="undefined"){
		// Paramétrage BE
    	
    	var initco_beUrl = 'http://booking.enjoyconstellation.com/BookingWaitResults.aspx'
    		+ '?filtermode=3&dispomode=0&culture=fr-fr&sitecss=http://pjresa.pagesjaunes.fr/MyConstellationCustom/PagesJaunes_WidgetBE_SiteCss.css&jtheme=smoothness'
    		+ '&idect=9d165475-9e3f-4f0c-9a5e-b4ffa418499a&iddistrib=9d165475-9e3f-4f0c-9a5e-b4ffa418499a&pwdistrib=F29280745D3C4D1E2070913271818957'
    		+ '&oi=&idoitif=' + _DATA.reservation.Idoitif;
    	
		// condition d'affichage particulier sur l'accueil (en ligne)
		var displayEl	= "block";
		if(resa.hasClass("accueil"))
			displayEl	= "inline";

		// Gestion nombre de chambres
		$('#co_nbRooms').change(function(){
			switch($('option:selected', this).val()){
				case "1":
					$('.chambre .libelle:first-child').hide();
					$('#co_room2').hide();
				break;
				case "2":
					$('.chambre .libelle:first-child').css("display", displayEl);
					$('#co_room2').show();
					$('#co_nbChildren2').trigger("change");
				break;
			}
		});
		$('#co_nbRooms').trigger("change");

		// Gestion Age enfants chambre 1
		$('#co_nbChildren1').change(function(){
			if($('#co_nbChildren1 option:selected').val() > 0){
				$('#co_ages1').css("display", displayEl);
			}else
				$('#co_ages1').hide();
			// permet de forcer la mise à jour de l'affichage sous ie sur l'accueil
			if(navigator.userAgent.toLowerCase().indexOf('msie') > -1 && displayEl=="inline")
				$("#co_ages1").height($("#co_ages1").height()+1);
			// affiche le bon nombre de listes déroulantes
			$('#co_ages1 .co_beAgeBlock').hide();
			$('#co_ages1 .co_beAgeBlock:lt(' + $('#co_nbChildren1 option:selected').val() + ')').show();
			i++;
		});
		$('#co_nbChildren1').trigger("change");

		// Gestion Age enfants chambre 2
		$('#co_nbChildren2').change(function(){
			if($('#co_room2').css('display') != 'none'){
				if($('#co_nbChildren2 option:selected').val() > 0)
					$('#co_ages2').css("display", displayEl);
				else
					$('#co_ages2').hide();
				// permet de forcer la mise à jour de l'affichage sous ie sur l'accueil
				if(navigator.userAgent.toLowerCase().indexOf('msie') > -1 && displayEl=="inline")
					$("#co_ages2").height($("#co_ages2").height()+1);
				// affiche le bon nombre de listes déroulantes
				$('#co_ages2 .co_beAgeBlock').hide();
				$('#co_ages2 .co_beAgeBlock:lt(' + $('#co_nbChildren2 option:selected').val() + ')').show();
			}
		});
		$('#co_nbChildren2').trigger("change");

		// gestion age enfants sur l'accueil
		$(".accueil.reservation #co_ages1 label, .accueil.reservation #co_ages2 label").each(function(){
			var age	= $(this).parent().find(".sAge");
			$(this).click(function(){
				age.toggle();
			});
		});

		// Fonctionnement champ date et datepicker
		var minDuration	= 1;

		var firstDay	= new Date(new Date().getTime()+1000*60*60*24);
		$('#co_dateFrom').attr('value', $.datepicker.formatDate('dd/mm/yy', firstDay));
		$('#co_dateFrom').datepicker({
			showOn			: 'both',
			showAnim		: 'slideDown',
			buttonImage		: '/_static/'+_DATA.pvi_version+'/css/img/calendrier.gif',
			buttonImageOnly	: true,
			buttonText		: 'Ouvrir le calendrier',
			autoSize		: true,
			defaultDate		: 0,
			minDate			: 0,
			maxDate			: '+1y+1m',
			onSelect		: function() {
				// récupère la date sélectionnée
				var dateFrom	= $(this).datepicker('getDate');
				// paramètre la date de départ
				var dateTo		= $('#co_dateTo').datepicker('getDate');
				var minDate		= new Date(dateFrom.getTime()+1000*60*60*24*minDuration);
				if(dateTo<minDate){
					$('#co_dateTo').attr('value', $.datepicker.formatDate('dd/mm/yy', minDate));
				}
				$('#co_dateTo').data('minDate', minDate);

				return false;
			}
		});

		var secondDay	= new Date(firstDay.getTime()+1000*60*60*24*minDuration);
		$('#co_dateTo').attr('value', $.datepicker.formatDate('dd/mm/yy', secondDay));
		$('#co_dateTo').data('minDate',  secondDay);
		$('#co_dateTo').datepicker({
			showOn			: 'both',
			showAnim		: 'slideDown',
			buttonImage		: '/_static/'+_DATA.pvi_version+'/css/img/calendrier.gif',
			buttonImageOnly	: true,
			buttonText		: 'Ouvrir le calendrier',
			autoSize		: true,
			minDate			: 1,
			maxDate			: '+1y+1m',
			beforeShow		: function() {
				// paramètre la date minimale de départ
				return { minDate: $(this).data('minDate') };
			}
		});


		// Bouton Submit
		$('#reserver').click(function(){
			// Paramètres search par défault
			var beSearchFam			= 'fdfbac6f-4422-4046-b394-f9ff5193623b';
			var beSearchDate		= '';
			var beSearchDate2		= '';
			var beSearchNbadultes	= 1;
			var beSearchNbenfants	= 0;
			var beSearchAgeenfants	= [];
			var beSearchNbadultes2	= 0;
			var beSearchNbenfants2	= 0;
			var beSearchAgeenfants2	= [];

			// Collecte des données
			beSearchDate		= $('#co_dateFrom').val();
			beSearchDate2		= $('#co_dateTo').val();

			beSearchNbadultes = parseInt($('#co_nbAdults1').val());
			beSearchNbenfants = parseInt($('#co_nbChildren1').val());
			if(beSearchNbenfants > 0){
				for(i=1;i<=beSearchNbenfants;i++)
					beSearchAgeenfants.push($('#co_age1' + i).val());
			}
			if(parseInt($('#co_nbRooms').val()) > 1){
				beSearchNbadultes2 = parseInt($('#co_nbAdults2').val());
				beSearchNbenfants2 = parseInt($('#co_nbChildren2').val());
				if(beSearchNbenfants2 > 0){
					for(i=1;i<=beSearchNbenfants2;i++)
						beSearchAgeenfants2.push($('#co_age2' + i).val());
				}
			}

			// Construction et envoi de la requête
			var co_beUrl	= initco_beUrl + '&search=date:' + beSearchDate + '_date2:' + beSearchDate2 + '_type:' + beSearchFam + '_nbadultes:' + beSearchNbadultes + '_nbenfants:' + beSearchNbenfants + '_ageenfants:' + beSearchAgeenfants + '_nbadultes2:' + beSearchNbadultes2 + '_nbenfants2:' + beSearchNbenfants2 + '_ageenfants2:' + beSearchAgeenfants2;

			var doc			= $(document.body);
            doc.append("<div id='opaque'></div>");
            $("#opaque").fadeTo('fast', 0.7);
            $("#opaque").height($(document).height());
			var width	= 1100;
            doc.append(
				'<div id="popin" style="width:'+width+'px;margin-left:-'+(width/2)+'px;">'
				+	'<div class="reservation">'
				+		'<h2>'
				+		'Réservation en ligne'
				+		'<a href="#" class="close">&nbsp;</a>'
				+		'</h2>'
				+		'<iframe id="constellation" src="'+co_beUrl+'" frameborder="0"><a href="'+co_beUrl+'">Afficher les disponibilités</a></iframe>'
				+	'</div>'
				+'</div>'
			);


            $("#popin").fadeTo('fast', 1);
            // on clic sur le fond opaque noir
            $("#opaque").click(function(){
                $(this).fadeOut({
                    queue		: false,
                    complete	: function(){
                        $(this).remove();
                    }
                });
                $("#popin").fadeOut({
                    queue		: false,
                    complete	: function(){
                        $(this).remove();
                    }
                });
				return false;
            });
			// on clique sur le bouton pour fermer la réservation
            $("#popin .reservation .close").click(function(){
				$("#opaque").trigger("click");
				return false;
			});
			return false;
		});
	}

    // charge ved
    var ved			= $("#right .bloc.ved");
    if(ved.length>0){
        if(ved.attr('cp')!=undefined){
			var urlVED	= '/meteo-service/villeendirect/dhtml/dhtml.do?typeAffichage=PVI&idLocalite=' + ved.attr('cp');
			$.ajax({
				url			: urlVED,
				type		: "GET",
				dataType	: "html",
				beforeSend	: function(){
					ved.empty();
					ved.attr("style", "display:none;");
				},
				success		: function(data){
					// résoud le problème d'encodage des degrés à cause de l'encodage ISO...
					data	= data.replace(/([0-9]{1,2})(.)C/gi, "$1°C");
					if (data.length>634){
						ved.empty();
						ved.append($(data).find("div:first").parent());
						ved.removeAttr("style");
						ved.removeAttr("cp");
						$(".bloc.infos h3, .bloc.infos h2").css("height", "1%"); // correction float bug
					}
				},
				error		: function(){
					ved.hide();
				}
			});
		}
    };
    // captcha
    fill_captcha();
    

    // charge catalogue
    var catalogue			= $("#left .bloc.catalogue");
    if(catalogue.length>0){
        loadCatalogue('catalogue01.htm');
    }
    function loadCatalogue(urlCATALOGUE){
        var urlCat				= '/catalogue-service/'+_DATA.idBlocCatalogue+'/'+_DATA.catalogueRef+'/';
        $.ajax({
            url			:  urlCat+urlCATALOGUE,
            dataType	: "html",
            beforeSend	: function(){
                catalogue.empty();
                catalogue.html("<img src='/_static/"+_DATA.pvi_version+"/css/img/ajax-loader.gif' alt='' align='top'/> En chargement");
            },
            success		: function(data){
                // résoud les problème d'id
                data	= data.replace(/id="/gi, "class=\"");
                // résoud les problèmes d'url
                data	= data.replace(/src="/gi, "src=\""+urlCat);
                catalogue.empty();
                catalogue.append($(data).find("div:first").parent());
                // corrige les liens pour chargement en ajax
                catalogue.find("a[href!=#]").each(function(){
                    var href	= $(this).attr("href");
					// cas spécifique IE qui renvoi le href en absolu
					if(!$.support.hrefNormalized){
						var base	= window.location.href.substring(0, window.location.href.lastIndexOf("index.html") + 1);
						href = href.replace(base, "");
					}
                    $(this).attr("href", "#");
                    $(this).click(function(){
                        loadCatalogue(href);
                        return false;
                    });
                });
            },
            error		: function(){
                catalogue.hide();
            }
        });
    }

    // charge les petites annonces
    var annonce		= $("#right .bloc.catalogue .top .bottom");
	var parent_annonce = $("#right .bloc.catalogue");
    if(annonce.length>0){
        $.ajax({
            url			: '/annonce-service/Vitrine.asmx/GetVitrine?codeEPJ='+_DATA.annonce.NumODA+'&typeVitrine='+_DATA.annonce.TypeVitrine+'&codeVitrine='+_DATA.annonce.NumProduit,
            dataType	: "text",
            beforeSend	: function(){
				parent_annonce.attr("style", "display:none;");
                annonce.empty();
                annonce.html("<img src='/_static/"+_DATA.pvi_version+"/css/img/ajax-loader.gif' alt='' align='top' style='width:16px;height:16px'/> En chargement");
            },
            success		: function(data){
                annonce.empty();

                var doc;
                if (navigator.appName == 'Microsoft Internet Explorer'){
                    doc = new ActiveXObject('Microsoft.XMLDOM');
                    doc.async = 'false'
                    doc.loadXML(data);
                } else {
                    doc = (new DOMParser()).parseFromString(data, 'text/xml');
                    doc	= doc.firstChild;
                }

                var url		= doc.getElementsByTagName("VoirToutesLesAnnoncesUrl")[0].childNodes[0].nodeValue;
                var img		= doc.getElementsByTagName("string");
                var titre	= eval("_TEXTES.annonce"+_DATA.annonce.TypeVitrine);
                if (img.length>0) {
					var html	= '<h2><a target="_blank" title="'+titre+'" alt="'+titre+'" href="'+url+'" class="lien '+_DATA.annonce.TypeVitrine+'">'+titre+'</a></h2>';
					html		+= '<div class="content">';
					for(var i=0;i<img.length;i++){
						html		+= '<a target="_blank" title="'+titre+'" alt="'+titre+'" href="'+url+'"><img alt="" src="'+img[i].childNodes[0].nodeValue+'"></a>';
					}
					html		+= '</div>';

					annonce.append(html);
					parent_annonce.removeAttr("style");
				}
            },
            error		: function(){
                annonce.hide();
            }
        });
    }

    // charge la carto Mappy
    var plan	= $("#planMappy");
    var coord;
    if(plan.length==1){
        if(typeof Mappy != "undefined"){
            if(typeof _DATA.zoneIntervention=="undefined")
                _DATA.zoneIntervention	= [];
			_DATA.zoneIntervention      = $.unique(_DATA.zoneIntervention);
            if(typeof _DATA.zoneChalandise=="undefined")
                _DATA.zoneChalandise	= [];
			_DATA.zoneChalandise        = $.unique(_DATA.zoneChalandise);
            // initialisation de la carte
            var map	= new Mappy.api.map.Map({
                container:"#planMappy"
            });
            // les outils de déplacement
            map.addTool(new Mappy.api.map.tools.ToolBar({
                zoom : {
                    label : "Zoom avant/arrière"
                },
                slider : {
                    label: "Slider"
                }
            }, new Mappy.api.map.tools.ToolPosition('lt', new Mappy.api.types.Point(10, 35))));

            // le calque des zone de chalandise
            shapeLayer		= new Mappy.api.map.layer.ShapeLayer(81);
            map.addLayer(shapeLayer);

            // le calque de pois
            layerCible		= new Mappy.api.map.layer.MarkerLayer(100);
            map.addLayer(layerCible);
            // permet d'éclater les markers à la fin d'un zoom
            map.addListener("zoomend",function(){
                layerCible.explode();
            });

            // le calque de l'itinéraire (et des drapeaux)
            routeLayer		= new Mappy.api.map.layer.ShapeLayer(120);
            map.addLayer(routeLayer);
            layerFlag		= new Mappy.api.map.layer.MarkerLayer(121);
            map.addLayer(layerFlag);

            // les géo-coordonnées pour le zoom final
            var ne	= {
                x:0,
                y:0
            };
            var sw	= {
                x:0,
                y:0
            };

            var setZoom	= function(){
                var bounds;
				if(typeof _DATA.geoCoordonnees == "undefined")
					_DATA.geoCoordonnees	= new Array();
				if(typeof _DATA.zoneChalandise == "undefined")
					_DATA.zoneChalandise	= new Array();
				if(typeof _DATA.zoneIntervention == "undefined")
					_DATA.zoneIntervention	= new Array();
				if(_DATA.zoneIntervention.length==0){
					if(_DATA.geoCoordonnees.length>1 || _DATA.zoneChalandise.length>0){
						var bounds1	= layerCible.getBounds();
						var bounds2	= shapeLayer.getBounds();
						if(bounds2){
							if(bounds1){
								bounds	= map.getBounds([
									bounds1.ne,
									bounds1.sw,
									bounds2.ne,
									bounds2.sw
									]);
							}else
								bounds	= bounds2;
						}else
							bounds	= bounds1;

						map.setCenter(bounds.center, map.getBoundsZoomLevel(bounds));
					}else{
						map.setCenter(coord, _DATA.zoom);
					}
					layerCible.explode();
				}else{
					bounds	= shapeLayer.getBounds();
					map.setCenter(bounds.center, map.getBoundsZoomLevel(bounds));
				}
            };

            if(_DATA.zoneIntervention.length==0){
                // ajoute les pois
				if(typeof _DATA.geoCoordonnees !="undefined"){
					var max		= 50;
					var saut	= 1;
					if(_DATA.geoCoordonnees.length>max)
						saut	= Math.floor(_DATA.geoCoordonnees.length/max);
					for(var i=0;i<_DATA.geoCoordonnees.length;i+=saut){
						var longitude	= _DATA.geoCoordonnees[i].lon;
						var latitude	= _DATA.geoCoordonnees[i].lat;
						var label		= _DATA.geoCoordonnees[i].lab;
						var poi			= _DATA.geoCoordonnees[i].poi;
						poi				= poi>0&&poi<3?poi:1;
						var projection	= _DATA.geoCoordonnees[i].proj;
						if(projection=="Lambert2Etendu"){
							// conversion Proj4js
							var p		= Proj4js.transform(new Proj4js.Proj("EPSG:27572"), new Proj4js.Proj("EPSG:4326"), new Proj4js.Point(longitude, latitude));
							coord		= new Mappy.api.geo.Coordinates(p.x, p.y);
						}else{
							coord		= new Mappy.api.geo.Coordinates(longitude, latitude);
						}
						var marker		= new Mappy.api.map.Marker(
							coord,
							new Mappy.api.ui.Icon({
								cssClass	: "cible-picto-ville-localisation"+poi,
								iconAnchor      : new Mappy.api.types.Point(2, 40),
						        size            : new Mappy.api.types.Size(22, 46)
							})
						);
						marker.addToolTip(label);
						layerCible.addMarker(marker);
					}
				}
				
				// hack mappy 2.10 permettant d'éviter que les tooltip des pois fond de plan s'affichent au-dessus des tooltip des pois
				try{
			        var _layerDescr         = map.controller.mapdescr;
			        var _openToolTip        = null;
			        if(_layerDescr){
						$(".layer[name=markerLayer]>div").mouseenter(function(){
						           _openToolTip    = _layerDescr._pois[0].openToolTip;
						           for(var i=0;i<_layerDescr._pois.length;i++)
						        	   	_layerDescr._pois[i].openToolTip        = function(){};
						});
						$(".layer[name=markerLayer]>div").mouseleave(function(){
						          if(_openToolTip){
						                for(var i=0;i<_layerDescr._pois.length;i++){
						                	_layerDescr._pois[i].openToolTip        = _openToolTip;
						                }
						          }
						});
				    }
				}catch(e){}

                // ajoute les zones de chalandise
                var zoneChalandiseAdded	= 0;
				if(typeof _DATA.zoneChalandise !="undefined"){
					var num	= _DATA.zoneChalandise.length;
					if(num>20)num=20;
					for(var i=0;i<num;i++){
						$.ajax({
							url			: _DATA.zoneChalandise[i],
							dataType	: "xml",
							error		: function(){
								zoneChalandiseAdded++;
								if(zoneChalandiseAdded==num)
									setZoom();
							},
							success		: function(data){
								var json		= Mappy.api.utils.xml2json(data);
								var kmlReader	= new Mappy.api.map.shape.kml.KmlReader();
								var formes		= kmlReader.getShapes(json.kml);
								for(var j=0;j<formes.length;j++) {
									var styleDep	= new Mappy.api.map.shape.ShapeStyle();
									styleDep.setStrokeStyle("60000000");
									styleDep.setLineWidth(0);
									styleDep.setFillStyle("60A1870E");
									formes[j].setStyle(styleDep);
									shapeLayer.addShape(formes[j]);
								}
								zoneChalandiseAdded++;
								if(zoneChalandiseAdded==num)
									setZoom();
							}
						});
					}
					// zoom au meilleur niveau
					if(_DATA.zoneChalandise.length==0)
						setZoom();
				}else
					setZoom();
            }else{
                // ajoute les zones d'intervention
                var zoneInterventionAdded	= 0;
				if(typeof _DATA.zoneIntervention !="undefined"){
					var num	= _DATA.zoneIntervention.length;
					if(num>20)num=20;
					for(var i=0;i<num;i++){
						$.ajax({
							url			: _DATA.zoneIntervention[i],
							dataType	: "xml",
							error		: function(){
								zoneInterventionAdded++;
								if(zoneInterventionAdded==num)
									setZoom();
							},
							success		: function(data){
								var json		= Mappy.api.utils.xml2json(data);
								var kmlReader	= new Mappy.api.map.shape.kml.KmlReader();
								var formes		= kmlReader.getShapes(json.kml);
								for(var j=0;j<formes.length;j++) {
									var styleDep	= new Mappy.api.map.shape.ShapeStyle();
									styleDep.setStrokeStyle("60000000");
									styleDep.setLineWidth(0);
									styleDep.setFillStyle("60A1870E");
									formes[j].setStyle(styleDep);
									shapeLayer.addShape(formes[j]);
								}
								zoneInterventionAdded++;
								if(zoneInterventionAdded==num)
									setZoom();
							}
						});
					}
				}
            }


            // switch entre les vues et calcul d'itinéraire
            var vue		= $("#vueMappy");
            var from	= $("#itiDepart");
            var to		= $("#itiArrive");
            if(vue.length==1){
                var	i		= 0;
                var link	= vue.find("li a");
                link.each(function(){
                    $(this).bind("click",{
                        pos:i
                    },function(event){
                        var mode	= ["map", "photo", "hybrid"];
                        if(!$(this).parent().hasClass("on")){
                            if(event.data.pos<mode.length){
                                // switch entre itinéraire et carte
                                $("#planMappy").show();
                                $("#actionMappy").show();
                                routeLayer.clean();
                                layerFlag.clean();
                                $("#itineraireMappy").removeClass("on");
                                // option de la carte
                                var vm	= new Mappy.api.map.ViewMode(mode[event.data.pos]);
                                map.setViewMode(vm);
                            // itinéraire
                            }else{
                                // switch entre itinéraire et carte
                                $("#planMappy").hide();
                                $("#itineraireMappy").addClass("on");
                                $("#itineraireForm").removeClass("off");
                                $("#itineraireResultat").addClass("off");

                                // switch entre "y aller" et "en partir"
                                $("input[name='itineraire']").change(function(){
                                    $(this).each(function(){
                                        $(this).removeClass("on")
                                        });
                                    var id		= $("input[name='itineraire']:checked").attr("id");
                                    // style du label
                                    $(".choix label").each(function(){
                                        $(this).removeClass("on");
                                    });
                                    $(".choix label[for='"+id+"']").addClass("on");
                                    // inverse les textes
                                    var tmp	= from.val();
                                    from.val(to.val());
                                    to.val(tmp);
                                    // selon les cas
                                    if (id == 'YAller'){
                                        from	= $("#itiDepart");
                                        to		= $("#itiArrive");
                                    }else{
                                        to		= $("#itiDepart");
                                        from	= $("#itiArrive");
                                    }
                                    // change les styles
                                    from.addClass("on");
                                    from.attr("disabled","");
                                    to.removeClass("on");
                                    to.attr("disabled","disabled");
                                });

                                // calcul de l'itinéraire
                                $("#itineraireMappy .validation").click(function(){
                                    getDepart();
                                    return false;
                                });
                            }
                        }
                        vue.find("li").removeClass("on");
                        $(this).parent().addClass("on");
                        return false;
                    });
                    i++;
                });
            }
        // si le chargement mappy a raté, on masque
        }else
            plan.hide();
    }

    var getDepart	= function(){
        var erreur		= $("#itineraireForm .error");
        var label		= $.trim(from.val());
        if(label==""){
            erreur.html(_TEXTES.itiErreur4);
            erreur.addClass("on");
        }else{
            var geocoder	= new Mappy.api.geolocation.Geocoder();
			geocoder.setLanguage($("meta[content=en]").length==1?'eng':'fre');
            geocoder.geocode(from.val(), function(results) {
                $("#itineraireForm .error").removeClass("on");
                var resultats	= [];
                for(var index in results){
                    var resultat			=  results[index];
                    //250 est le code ISO 3166-1 numeric de la France
                    if (resultat.Placemark.name != ""  && resultat.Placemark.AddressDetails.Country.CountryNameCode.value == 250) {
                        resultats.push(resultat);
                    }
                }
                // aucun résultat
                if (resultats.length == 0) {
                    erreur.html(_TEXTES.itiErreur1);
                    erreur.addClass("on");
                // un résultat
                } else if (resultats.length == 1) {
                    // DOM TOM
                    if(isDomTom(resultats[0])){
                        erreur.html(_TEXTES.itiErreur2);
                        erreur.addClass("on");
                    // France
                    }else{
                        var coords1	= resultats[0].Placemark.Point.coordinates;
                        var loc		= _DATA.geoCoordonnees[0];
                        var coords;
                        if(loc.proj=="Lambert2Etendu"){
							// conversion proj4js
							var p		= Proj4js.transform(new Proj4js.Proj("EPSG:27572"), new Proj4js.Proj("EPSG:4326"), new Proj4js.Point(longitude, latitude));
							coords		= new Mappy.api.geo.Coordinates(p.x, p.y);
                        }else
                            coords	= new Mappy.api.geo.Coordinates(loc.lat, loc.lon);
                        if($("input[name:'itineraire']:checked").attr("id") == "EnPartir"){
                            var pointDepart		= coords;
                            var pointArrivee	= new Mappy.api.geo.Coordinates(coords1[0], coords1[1]);
                        } else {
                            var pointArrivee	= coords;
                            var pointDepart	= new Mappy.api.geo.Coordinates(coords1[0], coords1[1]);
                        }
                        //On lance la recherche d'itineraire
                        getItineraire(pointDepart, pointArrivee);
                    }
                // plusieurs résultats : ambiguité
                } else {
                    var htmlListe	= '<ul>';
                    for (var i in resultats) {
                        var resultat = resultats[i];
                        htmlListe	+= '<li><a href="'+resultat.Placemark.Point.coordinates+'">' + resultat.Placemark.name + '</a></li>';
                    }
                    htmlListe		+= '</ul>';
                    erreur.html(htmlListe);
                    erreur.addClass("on");
                    $(".error ul li a").each(function(){
                        $(this).click(function(){
                            from.val($(this).html());
                            erreur.removeClass("on");
							erreur.empty();
							var c	= String($(this).attr("href")).split(",");
							if(c.length==2){
								var loc		= _DATA.geoCoordonnees[0];
								if(loc.proj=="Lambert2Etendu"){
									// conversion proj4js
									var p		= Proj4js.transform(new Proj4js.Proj("EPSG:27572"), new Proj4js.Proj("EPSG:4326"), new Proj4js.Point(longitude, latitude));
									coords		= new Mappy.api.geo.Coordinates(p.x, p.y);
								}else
									coords	= new Mappy.api.geo.Coordinates(loc.lat, loc.lon);
								if($("input[name:'itineraire']:checked").attr("id") == "EnPartir"){
									var pointDepart		= coords;
									var pointArrivee	= new Mappy.api.geo.Coordinates(parseFloat(c[0]), parseFloat(c[1]));
								} else {
									var pointArrivee	= coords;
									var pointDepart		= new Mappy.api.geo.Coordinates(parseFloat(c[0]), parseFloat(c[1]));
								}
								//On lance la recherche d'itineraire
								getItineraire(pointDepart, pointArrivee);
							}
                            return false;
                        });
                    });
                }
            }, function () {
                erreur.html(_TEXTES.itiErreur3);
                erreur.addClass("on");
            });
        }
    };

    var isDomTom	= function(localiteMappy){
        if(localiteMappy.Placemark != null){
            if(localiteMappy.Placemark.name != null){
                var tab = localiteMappy.Placemark.name.split(" ");
                if(tab != null){
                    if(tab.length>0){
                        code = tab[tab.length-1];
                        if( (code.indexOf("971") == 0) ||
                            (code.indexOf("972") == 0) ||
                            (code.indexOf("973") == 0) ||
                            (code.indexOf("974") == 0) ||
                            (code.indexOf("975") == 0) ||
                            (code.indexOf("976") == 0)){
                            return true;
                        }
                    }
                }
            }
        }
        return false;
    }

    // fonction de recherche d'itinéraire
    var getItineraire = function(pointDepart, pointArrivee) {
        // efface le tracé précédent
        routeLayer.clean();
        layerFlag.clean();
        // lance la recherche d'itinéraire
        var routeService = new Mappy.api.route.RouteService();
        routeService.loadRoute(
            [pointDepart, pointArrivee],
            {
                Vehicle		: 'midcar',
                caravane	: '0',
                gas			: 'petrol',
				bestcost	: 'time',
				cost		: 'time',
				language	: $("meta[content=en]").length==1?'eng':'fre'
            },
            function (roadbook) {
                // affiche les calques de réponse
                $("#itineraireResultat").removeClass("off");
                // imprimer l'itinéraire
                $("#itineraireMappy .imprimer").click(function(){
                    var id = $("input[name='itineraire']:checked").attr("id");
                    if (id == 'YAller'){
                        popup(_DATA.printiti_link+"/YAller/"+from.val(), 1000, 590, "yes");
                        return false;
                    }else{
                        popup(_DATA.printiti_link+"/EnPartir/"+from.val(), 1000, 590, "yes");
                    }
                    
                });
                // retour sur calcul d'itinéraire
                $("#itineraireMappy .validation2").click(function(){
                    $("#itineraireForm").removeClass("off");
                    $("#itineraireResultat").addClass("off");
                    $("#planMappy").hide();
                    return false;
                });
                $("#planMappy").show();
                $("#actionMappy").hide();
                $("#itineraireForm").addClass("off");

                // affiche l'itinéraire sur la carte
                for(var i in roadbook.shapes) {
                    routeLayer.addShape(roadbook.shapes[i]);
                }
                var bounds = routeLayer.getBounds();
                map.setCenter(bounds.center, map.getBoundsZoomLevel(bounds));
                // option de la carte
                map.setViewMode(new Mappy.api.map.ViewMode("map"));
                // affiche le contenu html
                $("#roadbook").html(roadbook.toHtml());
                // affiche les drapeaux
                layerFlag.addMarker(new Mappy.api.map.Marker(
                    pointDepart,
                    new Mappy.api.ui.Icon({
                        cssClass	: 'drapeauDepart'
                    })
				));
                layerFlag.addMarker(new Mappy.api.map.Marker(
                    pointArrivee,
                    new Mappy.api.ui.Icon({
                        cssClass	: 'drapeauArrivee'
                    })
				));
            },
            function(e) {
                alert(_TEXTES.itiErreur2);
            }
            );
    }


    // charge la galerie
    var galerie	= $(".bloc.galerie");
    if(typeof _GALERIE!="undefined" && galerie.length>0){
        if(_GALERIE.photos.length>0){
            var viewer		= galerie.find(".viewer:first");
            var thumbnails	= galerie.find(".thumbnails");
			var widthThumb	= thumbnails.width();
            var widthV		= 211;
			var numPhoto	= _GALERIE.photos.length;
            var widthT		= numPhoto*widthV;
			if(widthT<widthThumb)widthT	= widthThumb;
			var loaded		= 0;

            // met en place le thumbnails
            thumbnails.prepend("<ul></ul>");
            thumbnailsUl	= thumbnails.find("ul:first");
            thumbnailsUl.width(widthT);
            for(var i=0;i<_GALERIE.photos.length;i++){
                
                var li		=   $("<li><img/></li>");
                $('img', li).attr("src",_GALERIE.photos[i]);
                $('img', li).attr("alt",_GALERIE.labels[i]);
                $('img', li).attr("id","diapo"+i);
                li.append(img);
                thumbnailsUl.append(li);
				// si l'image est en 404, on l'enlève et on met à jour le paramétrage de la galerie
				$("#diapo"+i).bind('error', function() {
					loaded++;
					$(this).parent().remove();
					widthT	-= widthV;
					if(widthT<widthThumb)widthT	= widthThumb;
					numPhoto--;
					// affiche la première vignette
					if(loaded==_GALERIE.photos.length){
						thumbnailsUl.find("li:first").trigger("click");
					}
				});
				// on attend que l'image soit chargée
				$("#diapo"+i).one("load", function(){
					loaded++;
					// clique sur l'image
					$(this).parent().bind("click",function(event){
						// change pour le positionnement
						_GALERIE.actuel	= $(this).index();
						// stop une éventuelle animation sur le thumbnails
						thumbnailsUl.clearQueue();
						thumbnailsUl.stop();
						// positionne le thumbnails au niveau de l'image
						if(widthT>widthThumb){
							var left	= parseInt(thumbnailsUl.css("left"));
							var leftD	= -$(this).position().left+(thumbnails.outerWidth()-$(this).outerWidth())/2;
							var limite	= -(widthT-thumbnails.outerWidth());
							thumbnailsUl.animate(
								{left : leftD},
								{
									duration:Math.abs(left-leftD)*1.5,easing:"linear",//"slow",
									// permet d'activer/désactiver les flèches des thumbnails
									complete:function(){
										if(leftD<=limite)
											thumbnails.find("div.flecheDroite").addClass("off");
										else
											thumbnails.find("div.flecheDroite").removeClass("off");
										if(leftD>=0)
											thumbnails.find("div.flecheGauche").addClass("off");
										else
											thumbnails.find("div.flecheGauche").removeClass("off");
									}
								}
							);
						}else{
							thumbnails.find("div.flecheDroite").addClass("off");
							thumbnails.find("div.flecheGauche").addClass("off");
						}
						// modifie l'apparence du thumbnail
						thumbnailsUl.find("li").removeClass("on");
						$(this).addClass("on");
						// modifie l'apparence des flèches
						viewer.find("div.flecheGauche").toggleClass("off", _GALERIE.actuel==0);
						viewer.find("div.flecheDroite").toggleClass("off", _GALERIE.actuel==numPhoto-1);
						// affiche dans le viewer l'image cliquée et les infos correspondantes
						var img	= $(this).find("img:first");
						viewer.css("backgroundImage", "url("+img.attr("src")+")");
						viewer.find("span.label").text(img.attr("alt"));
						viewer.find("span.num").html((_GALERIE.actuel+1)+"/"+numPhoto);
					});
					// affiche la première vignette
					if(loaded==_GALERIE.photos.length){
						thumbnailsUl.find("li:first").trigger("click");
					}
				}).each(function(){
					// force l'évènement load selon les cas
					if(this.complete || (jQuery.browser.msie && parseInt(jQuery.browser.version) == 6))
						$(this).trigger("load");
				});
            }
			// action sur les flèches du viewer
			viewer.find("div.flecheGauche").click(function(){
				if(_GALERIE.actuel>0 && !$(this).hasClass("off")){
					_GALERIE.actuel--;
					thumbnailsUl.find("li:eq("+_GALERIE.actuel+")").trigger("click");
				}
			});
			viewer.find("div.flecheDroite").click(function(){
				if(_GALERIE.actuel<numPhoto && !$(this).hasClass("off")){
					_GALERIE.actuel++;
					thumbnailsUl.find("li:eq("+_GALERIE.actuel+")").trigger("click");
				}
			});
			//action sur les flèches du thumbnails
			thumbnails.find("div.flecheGauche").click(function(){
				var left	= parseInt(thumbnailsUl.css("left"));
				if(left<0 && !$(this).hasClass("off")){
					thumbnailsUl.clearQueue();
					thumbnailsUl.stop();
					// pour activer la flèche droite
					thumbnails.find("div.flecheDroite").removeClass("off");
					thumbnailsUl.animate(
					{
						left : 0
					},
					{
						duration : -left*30,
						easing : "linear",
						// pour désactiver la flèche gauche
						complete:function(){
							thumbnails.find("div.flecheGauche").addClass("off");
						}
					}
					);
				}
			});
			thumbnails.find("div.flecheDroite").click(function(){
				var left	= parseInt(thumbnailsUl.css("left"));
				if(left<widthT && !$(this).hasClass("off")){
					thumbnailsUl.clearQueue();
					thumbnailsUl.stop();
					// pour activer la flèche gauche
					thumbnails.find("div.flecheGauche").removeClass("off");
					thumbnailsUl.animate(
						{
							left : -(widthT-thumbnails.outerWidth())
						},
						// pour désactiver la flèche droite
						{
							duration : (widthT-thumbnails.outerWidth()+left)*30,
							easing : "linear",
							complete:function(){
								thumbnails.find("div.flecheDroite").addClass("off");
							}
						}
					);
				}
			});
		// si le tableau des images est vide, on cache le html de la galerie
		}else
			galerie.hide();
		}

// charge le diaporama
var diaporama	= $("#diaporama");
if(typeof _DIAPORAMA!="undefined" && diaporama.length>0){
	if(_DIAPORAMA.photos.length>0){
		if(_DIAPORAMA.photos.length>=2){
			launchDiapo();
		}else{
			var img	= $("<img src='"+_DIAPORAMA.photos[0]+"' alt=''/>");
			diaporama.append(img);
			img.animate({
				opacity:1
			});
			img.fadeIn('slow');
		}
	}else
		diaporama.hide();
}
function launchDiapo(){
    var img	= $("<img src='"+_DIAPORAMA.photos[_DIAPORAMA.actuel]+"' alt='diapo. "+(_DIAPORAMA.actuel+1)+"/"+_DIAPORAMA.photos.length+"'/>");
    diaporama.append(img);
	img.css({
		"position"	: "absolute",
		"top"		: "0px",
		"left"		: "0px",
		"opacity"	: "0"
	});
    // erreur de chargement (404)
    img.bind('error', function(){
		_DIAPORAMA.photos.splice(_DIAPORAMA.actuel,1);
		transitionDiapo(img);
	});
    // on attend que l'image soit chargée
    img.one("load", function(){
        // apparition
        img.animate({opacity:1},{duration:1500}).wait(4000,function(){
            transitionDiapo(img);
        });
	}).each(function(){
		// force l'évènement load selon les cas
		if(this.complete || (jQuery.browser.msie && parseInt(jQuery.browser.version) == 6))
			$(this).trigger("load");
	});
}
function transitionDiapo(img){
	if(_DIAPORAMA.photos.length>0){
		if(_DIAPORAMA.actuel==_DIAPORAMA.photos.length-1)
			_DIAPORAMA.actuel	= 0;
		else
			_DIAPORAMA.actuel++;
		if(_DIAPORAMA.photos.length>=2){
			launchDiapo();
			// disparition
			img.animate({
				opacity:0
			},{
				queue:false,
				duration:1000,
				complete:function(){
					img.remove();
				}
			});
		}else{
			var img	= $("<img src='"+_DIAPORAMA.photos[0]+"' alt=''/>");
			diaporama.append(img);
			img.animate({
				opacity:1
			});
			img.fadeIn('slow');
		}
	}else
		diaporama.hide();
}

// charge la vidéo
var video	= $("#video");
if(video.length==1){
    if(_DATA.video_id!="" && typeof _DATA.video_id!="undefined"){
        var height	= (_DATA.type_video=="fi"?462:342);
        var flash	= '<object id="kewego_flash_'+_DATA.video_id+'" type="application/x-shockwave-flash" data="http://sa.kewego.com/swf/ppj.swf" width="556" height="'+height+'">';
        flash		+= '<param name="flashVars" value="width=556&height='+height+'&playerkey=1146a0048fc8&pjId='+_DATA.clientId+'-'+_DATA.type_video+'-'+_DATA.video_id+'&autostart=true&skin=pvi&suffix="/>';
        flash		+= '<param name="movie" value="http://sa.kewego.com/swf/ppj.swf" />';
        flash		+= '<param name="allowFullScreen" value="true" />';
        flash		+= '<param name="allowscriptaccess" value="always" />';
		flash		+= '<param name="wmode" value="opaque"/>';
        flash		+= '<param name="bgcolor" value="000000" />';
		flash		+= '<embed src="http://sa.kewego.com/swf/ppj.swf?width=556&height='+height+'&playerkey=1146a0048fc8&pjId='+_DATA.clientId+'-'+_DATA.type_video+'-'+_DATA.video_id+'&autostart=true&skin=pvi&suffix=" quality="high" wmode="opaque" type="application/x-shockwave-flash"></embed>';
        flash		+= '</object>';
        video.html(flash);
    }else if(_DATA.video_sig!="" && typeof _DATA.video_sig!="undefined"){
        var height	= (_DATA.type_video=="fi"?462:342);
		var param	= (_DATA.type_video=="fi"?"csig":"sig");
        var flash	= '<object id="kewego_flash_'+_DATA.video_sig+'" type="application/x-shockwave-flash" data="http://sa.kewego.com/swf/ppj.swf" width="556" height="'+height+'">';
        flash		+= '<param name="flashVars" value="width=556&height='+height+'&playerkey=1146a0048fc8&'+param+'='+_DATA.video_sig+'&autostart=true&skin=pvi&suffix="/>';
        flash		+= '<param name="movie" value="http://sa.kewego.com/swf/ppj.swf" />';
        flash		+= '<param name="allowFullScreen" value="true" />';
        flash		+= '<param name="allowscriptaccess" value="always" />';
		flash		+= '<param name="wmode" value="opaque"/>';
        flash		+= '<param name="bgcolor" value="000000" />';
		flash		+= '<embed src="http://sa.kewego.com/swf/ppj.swf?width=556&height='+height+'&playerkey=1146a0048fc8&'+param+'='+_DATA.video_sig+'&autostart=true&skin=pvi&suffix=" quality="high" wmode="opaque" type="application/x-shockwave-flash"></embed>';
        flash		+= '<video id="kewego_HTML5_'+_DATA.video_sig+'" poster="http://api.kewego.com/video/getHTML5Thumbnail/?playerKey=1146a0048fc8&'+param+'='+_DATA.video_sig+'" width=556 height='+height+' controls="true" >';
		flash		+= '<source height="'+height+'" width="556" type="video/mp4" src="http://api.kewego.com/video/getHTML5Stream/?playerKey=1146a0048fc8&'+param+'='+_DATA.video_sig+'"></source>';
		flash		+= '</video>';
        flash		+= '</object>';
        video.html(flash);
    }else
        video.hide();
}

// vérification des champs du formulaire de contact
var form	= $("#reqform");
if(form.length==1){
    form.submit(function(){
        var alerte	= "";
        var oVal	= "";
        var nom		= $.trim($("input[name=nom]").val());
        oVal		= $.trim($("input[name=nom]").attr("oVal"));
        if(nom=="" || nom==oVal){
            alerte	+= _TEXTES.nom+"\n";
        }
        var prenom	= $.trim($("input[name=prenom]").val());
        oVal		= $.trim($("input[name=prenom]").attr("oVal"));
        if(prenom=="" || prenom==oVal){
            alerte	+= _TEXTES.prenom+"\n";
        }
        var email	= $.trim($("input[name=email]").val());
        oVal		= $.trim($("input[name=email]").attr("oVal"));
        if(email=="" || email==oVal){
            alerte	+= _TEXTES.email+"\n";
        }
        if (!mail.test(email) && email!="" && email!=oVal){
            alerte	+= _TEXTES.email_err+"\n";
        }
        var telephone	= $.trim($("input[name=telephone]").val());
        oVal			= $.trim($("input[name=telephone]").attr("oVal"));
        if(telephone=="" || telephone==oVal){
            alerte	+= _TEXTES.telephone+"\n";
        }
        var message	= $.trim($("textarea[name=message]").val());
        oVal		= $.trim($("textarea[name=message]").attr("oVal"));
        if(message=="" || message==oVal){
            alerte	+= _TEXTES.message+"\n";
        }
        var captcha	= $.trim($("input[name=captcha]").val());
        if(captcha==""){
            alerte	+= _TEXTES.captcha+"\n";
        }
        if(alerte!=""){
            alert(alerte);
            return false;
        }
        else{
            var ret = true;
            $.ajax({
                url             : "/ws/contact",
                type		: "POST",
                data		: {
                    nom         :  $.trim($("input[name=nom]").val()),
                    prenom       : $.trim($("input[name=prenom]").val()),
                    email       : $.trim($("input[name=email]").val()),
                    email_dest  : _DATA.email,
                    raison	: _DATA.corporate_name,
                    url         : _DATA.url,
                    telephone   : $.trim($("input[name=telephone]").val()),
                    title     : $.trim($("input[name=titre]").val()),
                    comments     : $.trim($("textarea[name=message]").val()),
                    spam        : $.trim($("input[name=spam]").val()),
                    captcha     : $.trim($("input[name=captcha]").val()),
                    captcha_id     : $.trim($("input[name=captcha_id]").val())
                },
                async           : false,
                dataType	: "html",
                success		: function(){
                    alert(_TEXTES.msg_ok);
                    ret = true;
                },
                error		: function(data){
                    if (data.responseText=="bad captcha"){
                        fill_captcha();
                        alert(_TEXTES.captcha_err);
                    }
                    else{
                    alert(_TEXTES.msg_ko);
                    }
                    ret = false;
                }
                
            });
            return ret;
        }
    });
}

            
// recommander à un ami
$(".recommander").click(function(){
    $.ajax({
        url			: "/ws/recommander_html",
        type		: "GET",
        dataType	: "text/html",
        async           : false,
        error		: function(data)
                {
			return;
		},
        success		: function(data){
            var doc		= $(document.body);
            doc.append("<div id='opaque'></div>");
            $("#opaque").fadeTo('fast', 0.7);
            $("#opaque").height($(document).height());
            doc.append("<div id='popin'>"+data+"</div>");
            $("#popin").fadeTo('fast', 1);
            // ajouter un destinataire
            $(".ajouterDestinataire").click(function(){
                $(this).parent().fadeOut(function(){
                    $("#secondDestinataire").slideDown();
                });
            });
            // on clic sur le fond opaque noir
            $("#opaque").click(function(){
                $(this).fadeOut({
                    queue		: false,
                    complete	: function(){
                        $(this).remove();
                    }
                });
                $("#popin").fadeOut({
                    queue		: false,
                    complete	: function(){
                        $(this).remove();
                    }
                });
            });
            // annuler
            $("#popin .inputAnnuler").click(function(){
                $("#opaque").trigger("click");
            });
            // envoyer
            $("#popin form").submit(function(){
                var alerte	= "";
                var nom		= $.trim($("input[name=re_nom]").val());
                if(nom==""){
                    alerte	+= _TEXTES.nom+"\n";
                }
                var email	= $.trim($("input[name=re_email]").val());
                if(email=="" ){
                    alerte	+= _TEXTES.email+"\n";
                }
                if (!mail.test(email) && email!="" ){
                    alerte	+= _TEXTES.email_err+"\n";
                }

                nom		= $.trim($("input[name=re_nomDestinataire]").val());
                if(nom==""){
                    alerte	+= _TEXTES.destinataireNom+"\n";
                }
                email	= $.trim($("input[name=re_emailDestinataire]").val());
                if(email=="")
                    alerte	+= _TEXTES.destinataireEmail+"\n";
                if (!mail.test(email) && email!="" )
                    alerte	+= _TEXTES.email_err+"\n";

                if($("#secondDestinataire").css("display")=="block"){
                    nom		= $.trim($("input[name=re_nomDestinataire2]").val());
                    if(nom==""){
                        alerte	+= _TEXTES.destinataireNom2+"\n";
                    }
                    email	= $.trim($("input[name=re_emailDestinataire2]").val());
                    if(email=="")
                        alerte	+= _TEXTES.destinataireEmail2+"\n";
                    if (!mail.test(email) && email!="" )
						alerte	+= _TEXTES.email_err+"\n";
                }

                var captcha	= $.trim($("input[name=re_captcha]").val());
                if(captcha==""){
                    alerte	+= _TEXTES.captcha+"\n";
                }
                if(alerte!=""){
                    alert(alerte);
                    return false;
                }
                else{
                    ret = true;
                    $.ajax({
                        url             : "/ws/recommander",
                        type            : 'POST',
                        async : false,
                        data		: {
                            nom         : $.trim($("input[name=re_nom]").val()),
                            email       : $.trim($("input[name=re_email]").val()),
                            nom_dest    : $.trim($("input[name=re_nomDestinataire]").val()),
                            email_dest	: $.trim($("input[name=re_emailDestinataire]").val()),
                            comments	: $.trim($("textarea[name=re_commentaires]").val()),
                            raison	: _DATA.corporate_name,
                            url         : _DATA.url,
                            nom_dest2   : $.trim($("input[name=re_nomDestinataire2]").val()),
                            email_dest2	: $.trim($("input[name=re_emailDestinataire2]").val()),
                            captcha     : $.trim($("input[name=re_captcha]").val()),
                            captcha_id     : $.trim($("input[name=re_captcha_id]").val())
                        },
                        success		: function(){
                            alert(_TEXTES.msg_ok);
                        },
                        error		: function(data){
                            if (data.responseText=="bad captcha"){
                                alert(_TEXTES.captcha_err);
                                refill_captcha();
                            }
                            else{
                            alert(_TEXTES.msg_ko);
                        }
                            ret = false;
                        }
                    });
                    return ret;
                }
                return true;
            });
        }
    });
});

// envoyer par sms
$("#action .envoyer").click(function(){
    $.ajax({
        url			: "/ws/sms_html",
        type		: "GET",
        dataType	: "html",
		error		: function(){
			return;
		},
        success		: function(data){
            var doc		= $(document.body);
            doc.append("<div id='opaque'></div>");
            $("#opaque").fadeTo('fast', 0.7);
            $("#opaque").height($(document).height());
            doc.append("<div id='popin'>"+data+"</div>");
            $("#popin").fadeTo('fast', 1);
            // ajouter un destinataire
            $(".ajouterDestinataire").click(function(){
                $(this).parent().fadeOut(function(){
                    $("#secondDestinataire").slideDown();
                });
            });
            // on clic sur le fond opaque noir
            $("#opaque").click(function(){
                $(this).fadeOut({
                    queue		: false,
                    complete	: function(){
                        $(this).remove();
                    }
                });
                $("#popin").fadeOut({
                    queue		: false,
                    complete	: function(){
                        $(this).remove();
                    }
                });
            });
            // annuler
            $("#popin .inputAnnuler").click(function(){
                $("#opaque").trigger("click");
            });
            // envoyer
            $("#popin form").submit(function(){
                var alerte	= "";
                var nom		= $.trim($("input[name=sms_nom]").val());
                if(nom==""){
                    alerte	+= _TEXTES.nom+"\n";
                }
                var telephone	= $.trim($("input[name=sms_numero]").val());
                if(telephone=="" ){
                    alerte	+= _TEXTES.telephone+"\n";
                }
                if (!tel_reg.test(telephone) && telephone!="" ){
                    alerte	+= _TEXTES.telephone_err+"\n";
                }
                nom		= $.trim($("input[name=sms_nomDestinataire]").val());
                if(nom==""){
                    alerte	+= _TEXTES.destinataireNom+"\n";
                }
                telephone	= $.trim($("input[name=sms_numeroDestinataire]").val());
                if(telephone==""){
                    alerte	+= _TEXTES.telephone+"\n";
                }
                if (!tel_reg.test(telephone) && telephone!="" ){
                    alerte	+= _TEXTES.telephone_err+"\n";
                }

                if($("#secondDestinataire").css("display")=="block"){
                    nom		= $.trim($("input[name=sms_nomDestinataire2]").val());
                    if(nom==""){
                        alerte	+= _TEXTES.destinataireNom2+"\n";
                    }
                    telephone	= $.trim($("input[name=sms_numeroDestinataire2]").val());
                    if(telephone==""){
                        alerte	+= _TEXTES.telephone+"\n";
                    }
                    if (!tel_reg.test(telephone) && telephone!="" ){
						alerte	+= _TEXTES.telephone_err+"\n";
                    }
                }

                var captcha	= $.trim($("input[name=sms_captcha]").val());
                if(captcha==""){
                    alerte	+= _TEXTES.captcha+"\n";
                }
                if(alerte!=""){
                    alert(alerte);
                    return false;
                }
                else{
                    ret = true;
                    $.ajax({
                        url             : "/ws/sms",
                        type            : 'POST',
                        async : false,
                        data		: {
                            nom         : $.trim($("input[name=sms_nom]").val()),
                            tel       : $.trim($("input[name=sms_numero]").val()),
                            nom_dest    : $.trim($("input[name=sms_nomDestinataire]").val()),
                            tel_dest	: $.trim($("input[name=sms_numeroDestinataire]").val()),
                            raison	: _DATA.corporate_name,
                            url         : _DATA.url,
                            tel_pvi         : _DATA.tel,
                            cp         : _DATA.cp,
                            loc         : _DATA.loc,
                            nom_dest2   : $.trim($("input[name=sms_nomDestinataire2]").val()),
                            tel_dest2	: $.trim($("input[name=sms_numeroDestinataire2]").val()),
                            comments	: $.trim($("textarea[name=sms_commentaires]").val()),
                            captcha     : $.trim($("input[name=sms_captcha]").val()),
                            captcha_id     : $.trim($("input[name=re_captcha_id]").val())
                        },
                        success		: function(){
                            alert(_TEXTES.sms_ok);
                        },
                        error		: function(data){
                            if (data.responseText=="bad captcha"){
                                alert(_TEXTES.captcha_err);
                                refill_captcha();
                        }
                            else{
                                alert(_TEXTES.msg_ko);
                            }
                            ret = false;
                        }
                    });
                    return ret;
                }
                return true;
            });
        }
    });
});

// envoyer le plan
$("#actionMappy .envoyer").click(function(){
    $.ajax({
        url			: "/ws/plan_html",
        type		: "GET",
        dataType	: "html",
		error		: function(){
			return;
		},
        success		: function(data){
			var doc		= $(document.body);
			doc.append("<div id='opaque'></div>");
			$("#opaque").fadeTo('fast', 0.7);
			$("#opaque").height($(document).height());
			doc.append("<div id='popin'>"+data+"</div>");
			$("#popin").fadeTo('fast', 1);

			// on clic sur le fond opaque noir
			$("#opaque").click(function(){
				$(this).fadeOut({
					queue		: false,
					complete	: function(){
						$(this).remove();
					}
				});
				$("#popin").fadeOut({
					queue		: false,
					complete	: function(){
						$(this).remove();
					}
				});
			});
            // ajouter un destinataire
            $(".ajouterDestinataire").click(function(){
                $(this).parent().fadeOut(function(){
                    $("#secondDestinataire").slideDown();
                });
            });
			// annuler
			$("#popin .inputAnnuler").click(function(){
				$("#opaque").trigger("click");
			});
			// validation formulaire
			$("#popin .inputEnvoyer").click(function(){
				var alerte	= "";
				// expéditeur
				var nomS		= $.trim($("input[name=nom]").val());
				if(nomS==""){
					alerte	+= _TEXTES.nom+"\n";
				}
				var emailS		= $.trim($("input[name=emailSource]").val());
				if(emailS==""){
					alerte	+= _TEXTES.email+"\n";
				}else if(!mail1.test(emailS)){
					alerte	+= _TEXTES.email_err+"\n";
				}
				// destinataire
				var nom		= $.trim($("input[name=nomDest]").val());
				if(nom==""){
					alerte	+= _TEXTES.destinataireNom+"\n";
				}
				var email	= $.trim($("input[name=emailDest]").val());
				if(email==""){
					alerte	+= _TEXTES.destinataireEmail+"\n";
				}else if(!mail1.test(email)){
					alerte	+= _TEXTES.email_err+"\n";
				}
				// deuxième destinataire
				var nom2	= "";
				var email2	= "";
				if($("#secondDestinataire").css("display")!="none"){
					nom2		= $.trim($("input[name=re_nomDestinataire2]").val());
					if(nom2==""){
						alerte	+= _TEXTES.destinataireNom2+"\n";
					}
					email2	= $.trim($("input[name=re_emailDestinataire2]").val());
					if(email2==""){
						alerte	+= _TEXTES.destinataireEmail2+"\n";
					}else if(!mail1.test(email2)){
						alerte	+= _TEXTES.email_err+"\n";
					}
				}
				// captcha
				var captcha	= $.trim($("input[name=re_captcha]").val());
				if(captcha==""){
					alerte	+= _TEXTES.captcha+"\n";
				}
				if(alerte!=""){
					alert(alerte);
					return false;
				}else{
                                    ret = true;
					$.ajax({
						url             : "/ws/plan",
						type            : 'POST',
						async : false,
						data		: {
							// expéditeur
							nom         : nomS,
							email       : emailS,
							// destinataire
							nom_dest    : nom,
							email_dest  : email,
							// deuxième destinataire
							nom_dest2   : nom2,
							email_dest2 : email2,
                                                    comments    :  $.trim($("textarea[name=message]").val()),
							// le captcha
							captcha     : captcha,
                                                    captcha_id  : $.trim($("input[name=re_captcha_id]").val()),
							mapX        : _DATA.geoCoordonnees[0].lon,
							mapY        : _DATA.geoCoordonnees[0].lat,
                                                    raison      : _DATA.corporate_name,
							url         : _DATA.url
						},
						success		: function(){
                                                    alert(_TEXTES.msg_ok);
						},
                                            error		: function(data){
                                                if (data.responseText=="bad captcha"){
                                                    alert(_TEXTES.captcha_err);
                                                    refill_captcha();
                                                }
                                                else{
							alert(_TEXTES.msg_ko);
						}
                                                ret = false;
                                            }

					});
                                    return ret;
				}
				return true;
			});
			return;
		}
	});
	return false;
});

var news	= $("#right .bloc.actualite");
if(news.length==1){
    var today = new Date();
    var start =  news.attr('start');
    if (start!=undefined){
        var start_year = start.substr(0,4);
        var start_month = parseInt(start.substr(5,2), 10) -1;
        var start_day = start.substr(8,2);
        var start_date = new Date(start_year, start_month, start_day);
    }
    var end =  news.attr('end');
    if (end!=undefined){
        var end_year = end.substr(0,4);
        var end_month = parseInt(end.substr(5,2), 10) -1;
        var end_day = end.substr(8,2);
        var end_date = new Date(end_year, end_month, end_day);
    }
    if (typeof start_date=='undefined'||today>=start_date){
        if (typeof end_date=='undefined'||today<=end_date){
            news.removeAttr("style");
        }
    }
}

$(".infoEd").click(function(){
    popup(_DATA.infoEd_link, 1000, 590, "yes");
    return false;
});
        
$(".imprimerpvi").click(function(){
    popup(_DATA.print_link, 1000, 590, "yes");
    return false;
});

$(".imprimerplan").click(function(){
    popup(_DATA.printplan_link, 1000, 590, "yes");
    return false;
});



// contenu alternatif : animation javascript par défaut
var hasFlash = false;
if (window.ActiveXObject) {
    var activex	= ["ShockwaveFlash.ShockwaveFlash", "ShockwaveFlash.ShockwaveFlash.3", "ShockwaveFlash.ShockwaveFlash.4", "ShockwaveFlash.ShockwaveFlash.5", "ShockwaveFlash.ShockwaveFlash.6", "ShockwaveFlash.ShockwaveFlash.7"];
    for(var i=0;i<activex.length;i++){
        try {
            new ActiveXObject(activex[i]);
            hasFlash = true;
        }catch(e){}
    }
}else{
    $.each(navigator.plugins, function () {
        if (this.name.match(/flash/gim)) {
            hasFlash = true;
            return false;
        } else {
            hasFlash = false;
        }
    });
}
if($(".accueil").length>0 && $("#accueil").length==0){
    $("#menu").after('<div id="accueil"><div id="smart"></div></div>');
    hasFlash = false;
}
if(!hasFlash){
    $.ajax({
        url		: '/_static/'+_DATA.pvi_version+'/js/ajax/AnimHome.html',
        dataType	: 'html',
		error		: function(data){
			$("#smart").append("<img src='"+_ANIM.img+"' alt='"+_ANIM.titre1+" "+_ANIM.titre2+(typeof _ANIM.titre3!="undefined"?_ANIM.titre3:"")+"' width='995' height='395'/>");
		},
        success	: function(data) {
            $("#smart").append(data).queue(function(){
                InitAnim(_ANIM.img, _ANIM.titre1, _ANIM.titre2, (typeof _ANIM.titre3!="undefined"?_ANIM.titre3:""));
            });
        }
    });
    
    // Pour éviter l'affichage du texte de présentation lorsque le plug-in flash n'est pas présent
    $("#noFlash").remove(); 
}


// appel Gratuit
$(".appelGratuit").click(function(){
    popup(_DATA.call_link, 510, 490, "yes");
    return false;
});
function popup(url, largeur, hauteur, scroll){
    var top		= (screen.height-hauteur)/2;
    var left	= (screen.width-largeur)/2;
    var fenetre = window.open(url ,"pop_up_"+Math.round(Math.random()*1000000),"top="+top+",left="+left+",width="+largeur+", height="+hauteur+",scrollbars="+scroll+",status=no,toolbar=no,resizable=yes,menubar=no,location=no");
    fenetre.focus();
}
});
// éviter les erreurs sur les statistiques pagesjaunes
var _PJS={};
var eStat_id={};
eStat_id.serial=function(){};
eStat_id.master=function(){};
eStat_id.niveau=function(){};
var eStat_tag={};
eStat_tag.post=function(){};

