function scrollbar() {
	var wndo = new dw_scrollObj('zoneScroll', 'listing');
	wndo.setUpScrollbar("drag", "track", "v", 1, 1);
	wndo.setUpScrollControls('scrollbar', true, 'v');
}
function scrollbar2() {
	var wndo = new dw_scrollObj('zoneScroll2', 'detailMezzo');
	wndo.setUpScrollbar("drag2", "track2", "v", 1, 1);
	wndo.setUpScrollControls('scrollbar2');
}
/*************************/
var gmap;
var body;
var centerMap;
var lat = 47;
var lng = 1.8;
var zoom = 5;

var detail = false;
var data;
var typeSearch;

var icon = new GIcon();
icon.image = "images/gmap/icone-mezzo.png";
icon.iconSize = new GSize(34, 41);
icon.iconAnchor = new GPoint(17, 40);
/*************************/

function load(typeSearch, data, detail) {
	loadMap();
	loadPoints(typeSearch, data, detail);
	if(data!="" && detail != true)
		zoomOnDetail(data);
	else if(detail!= true)
		geoIp();
}
function zoomOnDetail(address) {
	var geocoder = new GClientGeocoder();
	if (geocoder) {
		geocoder.getLatLng(address+" FRANCE", function(point) {
			if (point) { 
				ZoomMap(point.y, point.x, 12);
			}
		});
	}
}
function loadMap() {
	var body = $('carte');
	var centerMap = new GLatLng(lat,lng);
	
	if (GBrowserIsCompatible()) {
		gmap = new GMap2(body);
		gmap.setCenter(centerMap, zoom);
		gmap.enableContinuousZoom();
		gmap.setUIToDefault();
	}
}
function updateMap() {
	loadMap();
	$('data').value = 'Ville, Code postal';
	loadPoints('', '');
	geoIp();
}
function loadPoints(typeSearch, data, detail) {
	var markers = new Array();
	
	if(data != "" && detail != true) {
		if(typeSearch == "zip")
			selectCityAndZoomOn(data);
	}
		
	new Ajax.Request('selectPoints.php',{
		asynchronous:true, method: 'post',
		parameters:{typeSearch:typeSearch, data:data},
		onSuccess: function(v) {
			eval(v.responseText);
			
			if(typeSearch == "ville")
				zoomOnDetail(ville);
			
			if(listingMezzo != "") {
				gmap.clearOverlays();
				for(var k=0; k<markers.length; k++) {
					gmap.addOverlay(markers[k]);
				}
				$('listing').update(listingMezzo);
				//setTimeout("$('listing').style.height = $('listing').getHeight()", 1000);
				
				$('scrollbar').style.display = 'block';
				setTimeout("scrollbar()", 1000);
			}
			else {
				$('listing').update('<p class="noSearch">Il n\'y a pas de résultat correspondant à cette recherche<br /><br />Re-initialisation automatique</p>');
				ZoomMap(lat, lng, 5);
				setTimeout("updateMap()", 3000);
			}
		},
		onLoading: function() { startLoading(); },
		onComplete: function() { endLoading(); }
	});
}
function geoIp() {
	new Ajax.Request('geoIP.php', {
		asynchronous:true, method: 'post',
		onSuccess: function(t) {
			eval(t.responseText);
			if((GEOlat != 0) && (GEOlng != 0))
				ZoomMap(GEOlat, GEOlng, 12);
		}
	});
}
function selectCityAndZoomOn(zip) {
	new Ajax.Request('selectCity.php', {
		asynchronous:true, method: 'post',
		parameters:{zip:zip},
		onSuccess: function(t) {
			eval(t.responseText);
			zoomOnDetail(region);
		}
	});
}
function defineTypeSearch() {
	var data = $('data').value;
	if(data != "") {
		if(data.search(/^[0-9]{2,5}$/) != -1)
			typeSearch = "zip";
		else if(data.search(/^[a-zA-Z\  \-]+$/) != -1)
			typeSearch = "ville";	
		else {
			$('data').style.color = "red";
			$('data').value = "Mauvaise saisie";
			typeSearch = false;
		}
		if(typeSearch)
			loadPoints(typeSearch, data);
	}
	else {
		$('data').style.color = "red";
		$('data').value = "Le champ est vide";
		typeSearch = false;
	}
}
function createFixedMarker(point,icone,url) {
	marker = new GMarker(point, icone);
	
	GEvent.addListener(marker, "click", function() {
		if(url != "")
			window.location.replace(url);
	});
	return marker;
}
function ZoomMap(lat, lng, newZoom) {
	gmap.setCenter(new GLatLng(lat, lng), newZoom);
}
function startLoading() {
	$('updateMap').style.display = 'none';
	
	$('listing').style.display = 'none';
	$('scrollbar').style.display = 'none';
	$('bigLoading').update('<img src="images/loaders/big-ajax-loader.gif">');
	
	$('submitSearch').style.display = 'none';
	$('minLoading').update('<img src="images/loaders/small-ajax-loader.gif">');
}
function endLoading() {
	$('updateMap').style.display = 'block';
	
	$('bigLoading').update();
	$('listing').style.display = 'block';
	
	$('minLoading').update();
	$('submitSearch').style.display = 'block';
}
