	
	var map = null;
	var geocoder = null;
	var err="Nous n'avons pas pu interpr&eacute;ter le code postal que vous nous avez soumis. Veuillez v&eacute;rifier l'information entr&eacute;e et faire une nouvelle requ&ecirc;te.";
	var noSearch = 'Pour assistance, veuillez communiquer avec nous par l\'entremise de notre section <a style=\'text-decoration:none;\' href=\'http://www.cyclovac.com/canada/Contact\'>contact</a>.';
	
	var center;
	var icon;
	var search=true;
	
	function initMap(zip,country) {
	
	
		if(zip.indexOf('!')!=-1){
			var depId = zip.split('!')[0];
			var b = zip.split('!')[1];
			zip = b;
		}else{
			var depId = '';
		}
	
		if (GBrowserIsCompatible() && search) {
			  if(country != "France")
			    map = new GMap2($("map"));
			  else
			    map = new GMap2($("map_france"));
			    
			

			geocoder = new GClientGeocoder();
			var pays = geocoder.getLatLng(country, function(latlng) {
			if (latlng) 
				map.setCenter(latlng,5);
			else
			{
				  geocoder.setBaseCountryCode("us");
				  center = new GLatLng(49.891235, -97.15369);
				  map.setCenter(center,5);
			}
			});


			  
			  map.setUIToDefault();						
			  map.disableScrollWheelZoom();
			  
			  if(zip != "" && country != "")
			  {
			    icon = new GIcon(G_DEFAULT_ICON);
			    icon.image = "http://maps.google.com/mapfiles/ms/micons/green.png";
			    icon.iconSize = new GSize(32,32);
			    icon.shadowSize = new GSize(0,0);
			    
			    if(country != "France")
			    	getZipLocation(zip,false,country, depId);
			    else
			    	getZipLocation(zip,true,country, depId);
			  }
		  }
	}
	
	function getZipLocation(cp2, france, country, depId)
	{
		
		
		
		if(!france)
			cp2 = cp2 + "," + country;	
			
		requestAddrToCoordinates(cp2, function(cp, point){
			
						
						
					
					
			
			if(point!=null && search){
				map.clearOverlays();
				var myTemplate = new Template($('templateInfoMarchand').innerHTML);
				var pointSrc = new GLatLng(point.lat(), point.lng())
				map.setCenter(pointSrc, 8);
				var overlay = new GMarker(point,{icon: icon, title: cp2});
				map.addOverlay(overlay);
				
				var url = "http://www.cyclovac.com/canada/php/ajax.php?action=getNearestStore&lat="+ point.lat() +"&lng=" + point.lng() + "&cp=" + cp + "&depId="+ depId +"&country=" + country;
									
				
				var ar = new Ajax.Request(url);
				
				ar.options.onSuccess=ar.options.onSuccess = function(r){
					
					
											
						if(r.responseText=="MAX")
						{
							if(country=="France")
								document.getElementById('map_france').style.display="none";
							else
								document.getElementById('map').style.display="none";
							
							document.getElementById('Canada').style.display="none";
							document.getElementById('France').style.display="none";
							document.getElementById('message').innerHTML= noSearch;
							document.getElementById('nearestStore').style.display="none";
							document.getElementById('paysdropdown').disabled=true;
							search=false;
						}
						else
						{
							var json = r.responseText.evalJSON();
							$('nearestStore').update(json.htmlList);
							
							var bounds = new GLatLngBounds();
							bounds.extend(pointSrc);
							json.marchandsInfos.each(function(marchand){
								var gltalng = new GLatLng(marchand.lat, marchand.lng);
								bounds.extend(gltalng);
	
								marchand.distance = Math.round(gltalng.distanceFrom(pointSrc)/100,2)/10 + " km";
								
								var m = new GMarker(gltalng);
								map.addOverlay(m);
								GEvent.addListener(m, "click", function() {
									var str = myTemplate.evaluate(marchand);
									str = str.gsub('__link__', 'http://www.cyclovac.com/canada/marchand/' + marchand.url);
									m.openInfoWindow(str);
								}); 					
	
							});
							
							if (map.getBoundsZoomLevel(bounds) >= 18)
								map.setCenter(bounds.getCenter(), 17);
							else
								map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds)-1);
						}
					};
			}
			else
			{
				if(search)
				{
					map.setCenter(center,4);
					alert(err);
				}
			}	
		});
	}
			
	function requestAddrToCoordinates(cp, callBack){
		geocoder.getLatLng(cp, function(point){responseAddrToCoordinates(cp,point,callBack);});
	}
	
	function responseAddrToCoordinates(cp, point, callBack){
		if(search)
		{	
			if(typeof(callBack)=="function"){
				callBack(cp,point);
			}
		}
		
	}
	
	function viewInfo(){
		map.openInfoWindow(map.getCenter(), document.createTextNode("<a href='marchand'>"));
	}
	
	//*******************************
	//Envoie les infos du formulaire
	//de demande d'information
	//sur les marchands les plus près
	//si l'usager est à l'extérieur
	//des trois pays suivants :
	//Canada,USA,France
	//***************************
	
	function sendinfo()
	{
		var f = document.getElementById("formulaire");
		var emailregx = new RegExp('^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$');
		var errMsg = "";

		if(f.zip.value.length <1)
			errMsg += "Vous devez entrer le code postal" + "\n";
		if(f.city.value.length <1)
			errMsg += "Vous devez entrer le nom de la ville" + "\n";
		if(!emailregx.test(f.email.value))
			errMsg += "Votre adresse email est invalide" + "\n";

		if(errMsg.length>1)
		{
			alert(errMsg);
			return false;
		}
		else
		{	
			var ar = new Ajax.Request('http://www.cyclovac.com/canada/php/ajax.php?action=sendzipmail&email=' + f.email.value + '&zip=' + f.zip.value + '&city=' + f.city.value + '&pays=' + document.getElementById('paysdropdown').value);
			ar.options.onSuccess=ar.options.onSuccess = function(r){
				alert(r.responseText);	
				document.getElementById('envoyer').disabled=true;
			}
		}
		
		return true;
	}


      function probeCountry(country)
      {
		//hide all
		document.getElementById("Canada").style.display="none";
		document.getElementById("France").style.display="none";
		document.getElementById("Others").style.display="none";
				
		  var ar = new Ajax.Request("http://www.cyclovac.com/canada/php/ajax.php?action=probeCountry&country=" + country);
		  ar.options.onSuccess=ar.options.onSuccess = function(req)
		  {
			if(parseInt(req.responseText))
			{
				if(country != "France")
			      		document.getElementById("Canada").style.display="block";
				else
			      		document.getElementById("France").style.display="block";

				initMap("",country);
			}
			else
			  document.getElementById("Others").style.display="block";
		}
	}
      
