// store locator Michel et Augustin - v1.0 - 28/06/2010 @rh var map; var markers = []; var infoWindow; function load(cp) { map = new google.maps.Map(document.getElementById("map"), { center: new google.maps.LatLng(46.75984, 1.738281), zoom: 4, mapTypeId: 'roadmap', navigationControl: true, scaleControl: true, navigationControl: true, navigationControlOptions: { style: google.maps.NavigationControlStyle.ZOOM_PAN }, mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.DROPDOWN_MENU} }); infoWindow = new google.maps.InfoWindow(); if (window.location.hash) { var cpurl = window.location.hash; document.getElementById("addressInput").value = cpurl.replace(/#/g,''); if (isNaN(document.getElementById("addressInput").value)) {document.getElementById("addressInput").value = unescape(document.getElementById("addressInput").value); } searchLocations(); } if (cp) { document.getElementById("addressInput").value = cp; if (isNaN(document.getElementById("addressInput").value)) {document.getElementById("addressInput").value = unescape(document.getElementById("addressInput").value); } searchLocations(); } } function searchLocations() { if (document.getElementById("addressInput2") == undefined) { var address = document.getElementById("addressInput").value; } else { var address = document.getElementById("addressInput2").value; } if (address == '75000') { address = '75'; } var geocoder = new google.maps.Geocoder(); geocoder.geocode({address: address}, function(results, status) { if (status == google.maps.GeocoderStatus.OK) { searchLocationsNear(results[0].geometry.location); new google.maps.Marker({ map: map, position: results[0].geometry.location, icon: 'images/icones-36.png', zIndex: 50000 }); document.getElementById('saisie').setAttribute("class",'center'); document.getElementById('noresult').innerHTML = ''; document.getElementById('txtintro').style.display = 'none'; document.getElementById('txtintro2').style.display = 'none'; if (!window.location.hash) window.location = window.location + '#' + escape(document.getElementById("addressInput").value); } else { alert(address + ' : cette adresse n\'a pas été trouvée...'); } }); } function clearLocations() { infoWindow.close(); for (var i = 0; i < markers.length; i++) { markers[i].setMap(null); } markers.length = 0; } function searchLocationsNear(center) { clearLocations(); var searchUrl = 'xml.php?lat=' + center.lat() + '&lng=' + center.lng() + '&txt=' + escape(document.getElementById("addressInput").value); downloadUrl(searchUrl, function(data) { var xml = parseXml(data); var markerNodes = xml.documentElement.getElementsByTagName("marker"); var bounds = new google.maps.LatLngBounds(); var sidebar = document.getElementById('sidebar'); sidebar.scrollTop = 0; sidebar.innerHTML = ''; if (markerNodes.length == 0) { document.getElementById('cdre').style.display = 'none'; document.getElementById('saisie').style.display = 'none'; document.getElementById('hop').style.display = 'none'; document.getElementById('saisie').innerHTML = ''; document.getElementById('ctn').style.backgroundImage = 'url(images/fondrecherche2.png)'; document.getElementById('noresult').innerHTML = "

A priori pas grand-chose en bas de chez vous.

Essayez avec une autre adresse ou tentez de convaincre votre commerçant préféré de rejoindre notre belle aventure en cliquetant ici

Une autre recherche ?


"; sIFR.replace(skippys, { selector: 'h2', wmode: 'transparent', css: '.sIFR-root { color: #eb0186; font-size:30px; margin: 0; padding: 0; leading: -30; height: 30px; background: transparent }' }); sIFR.replace(skippys, { selector: 'p', wmode: 'transparent', css: '.sIFR-root { color: #000000; font-size:25px; margin: 0; padding: 0; leading: -12; background: transparent } .sIFR-root a { text-decoration: none; color: #eb0186 } .sIFR-root a:hover { text-decoration: none; color: #eb0186 }' }); return; } else { document.getElementById('hop').style.display = 'block'; document.getElementById('ctn').style.backgroundImage = 'url(images/fondrecherche.png)'; document.getElementById('saisie').innerHTML = 'Une autre recherche ? '; document.getElementById('saisie').style.display = 'block'; document.getElementById('cdre').style.display = 'block'; sIFR.replace(skippys, { selector: 'h2', wmode: 'transparent', css: '.sIFR-root { color: #eb0186; font-size:50px; margin: 0; padding: 0; leading: -40; height: 30px; background: transparent }' }); sIFR.replace(skippys, { selector: 'h3', wmode: 'transparent', css: '.sIFR-root { color: #eb0186; font-size:25px; margin: 0; padding: 0; leading: -12; background: transparent }' }); sIFR.replace(skippys, { selector: '#hip', wmode: 'transparent', css: '.sIFR-root { color: #eb0186; font-size:20px; margin: 0; padding: 0; leading: -12; background: transparent } .sIFR-root a { text-decoration: none; color: #eb0186 } .sIFR-root a:hover { text-decoration: none; color: #eb0186 }' }); google.maps.event.trigger(map, 'resize'); } for (var i = 0; i < markerNodes.length; i++) { var name = markerNodes[i].getAttribute("name"); var address = markerNodes[i].getAttribute("address"); var distance = parseFloat(markerNodes[i].getAttribute("distance")); var latlng = new google.maps.LatLng( parseFloat(markerNodes[i].getAttribute("lat")), parseFloat(markerNodes[i].getAttribute("lng"))); createMarker(latlng, name, address); var sidebarEntry = createSidebarEntry(markers[i], name, address, distance); sidebar.appendChild(sidebarEntry); bounds.extend(latlng); delete sidebarEntry; } if (markerNodes.length == 20) { var sidebarTxt = document.createElement('div'); var html = "Voici les magasins près de chez vous que nous avons visités récemment.
S'il y a d'autres vaches ou petits carrés près de chez vous, dites-le nous en cliquetant ici !"; sidebarTxt.innerHTML = html; sidebarTxt.style.marginBottom = '5px'; sidebar.appendChild(sidebarTxt); } map.fitBounds(bounds); }); } function createMarker(latlng, name, address) { var html = "" + name + "
" + address + "

Envie de vous rendre chez ce chouette commerçant ?"; var marker = new google.maps.Marker({ map: map, position: latlng, icon: 'images/icones-34.png' }); google.maps.event.addListener(marker, 'click', function() { infoWindow.setContent(html); for (var i = 0; i < markers.length; i++) { markers[i].setIcon('images/icones-34.png'); } marker.setIcon('images/icones-35.png'); infoWindow.open(map, marker); }); markers.push(marker); } function createSidebarEntry(marker, name, address, distance) { var div = document.createElement('div'); var html = '' + name + ' (' + distance.toFixed(1) + 'km)
' + address; div.innerHTML = html; div.style.cursor = 'pointer'; div.style.marginBottom = '15px'; google.maps.event.addDomListener(div, 'click', function() { google.maps.event.trigger(marker, 'click'); }); google.maps.event.addDomListener(div, 'mouseover', function() { div.style.backgroundColor = '#eee'; }); google.maps.event.addDomListener(div, 'mouseout', function() { div.style.backgroundColor = '#fff'; }); return div; } function downloadUrl(url, callback) { var request = window.ActiveXObject ? new ActiveXObject('Microsoft.XMLHTTP') : new XMLHttpRequest; request.onreadystatechange = function() { if (request.readyState == 4) { request.onreadystatechange = doNothing; callback(request.responseText, request.status); } }; request.open('GET', url, true); request.send(null); } function parseXml(str) { if (window.ActiveXObject) { var doc = new ActiveXObject('Microsoft.XMLDOM'); doc.loadXML(str); return doc; } else if (window.DOMParser) { return (new DOMParser).parseFromString(str, 'text/xml'); } } function doNothing() {}