var orig_lat = 46.875213396722685;
var orig_lng = 1.845703125;
var zoom_orig = 6;

var map = null;
var geocoder = null;
var tab_marker = new Array();
var tab_default = new Array();
var nb_marker = null
var mescoord = new Array()
var icon = null;
var icons = {"w" : 24, "h" : 24, "f":"/fileadmin/templates/img/ico-struct-map.png"};

function results(param)
{
	textResults(param);
	resetPoints();
	GMAPResults(param);
}

function GMAPResults(param)
{
	defUrl = 'typo3conf/ext/tx_alienor_gmap/pi1/gmap-results.php';
	var data = param;

	var http_request = getHTTPObject();
	
	http_request.onreadystatechange = function(){
		if (http_request.readyState == 4) 
		{
			eval(http_request.responseText);
		}
	};
	
	http_request.open('POST', defUrl, true);
	http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	http_request.setRequestHeader("Content-length", data.length);
	
	http_request.send(data);
}

function TEXTDefaut(id)
{
	
	defUrl = 'typo3conf/ext/tx_alienor_gmap/pi1/text-defaut.php';
	var data = 'id='+id;

	var http_request = getHTTPObject();
	
	http_request.onreadystatechange = function(){
		if (http_request.readyState == 4) 
		{
		 //eval(http_request.responseText);
		 document.getElementById("resultats").innerHTML = http_request.responseText;
		}
	};
	
	http_request.open('POST', defUrl, true);
	http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	http_request.setRequestHeader("Content-length", data.length);
	
	http_request.send(data);
	
}

function GMAPDefaut(id)
{

	defUrl = 'typo3conf/ext/tx_alienor_gmap/pi1/gmap-defaut.php';
	var data = 'id='+id;

	var http_request = getHTTPObject();
	
	http_request.onreadystatechange = function(){
		if (http_request.readyState == 4) 
		{
			//alert(http_request.responseText);
		 
			//document.getElementById("temp").innerHTML = http_request.responseText;
			eval(http_request.responseText);
		}
	};
	
	http_request.open('POST', defUrl, true);
	http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	http_request.setRequestHeader("Content-length", data.length);
	
	http_request.send(data);
}

function textResults(param)
{
	id_calque = 'resultats';
//	param = 'a=test';
	defUrl = 'typo3conf/ext/tx_alienor_gmap/pi1/text-results.php';

	var data = param;


	var divresult = document.getElementById(id_calque);//div mis a jour

	
	var http_request = getHTTPObject();

	http_request.onreadystatechange = function(){
		if (http_request.readyState == 4) 
		{
			divresult.innerHTML = http_request.responseText;
		}
		if (http_request.readyState == 1)
		{
			divresult.innerHTML = '<p class="content-center" style="margin:5px;"><img src="/fileadmin/templates/img/ajax-loader.gif" alt=""></p>';
		}
		
		if (http_request.readyState == 2)
		{
			divresult.innerHTML = '<p class="content-center" style="margin:5px;"><img src="/fileadmin/templates/img/ajax-loader.gif" alt=""></p>';
		}
	};
	
	http_request.open('POST', defUrl, true);
	http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	http_request.setRequestHeader("Content-length", data.length);
	
	http_request.send(data);
}

function recordPoint(point,uid){
//alert(point+'-'+uid);
	if(point != null){	
 		param = 'id='+uid+'&lng='+point.lng()+'&lat='+point.lat();
 		defUrl = 'typo3conf/ext/tx_alienor_gmap/pi1/maj-coord.php';
		var data = param;
 		var http_request = getHTTPObject();
		http_request.onreadystatechange = function(){
			if (http_request.readyState == 4) 
			{
				 document.getElementById("temp").innerHTML = http_request.responseText;
			}
		};
			
		http_request.open('POST', defUrl, true);
		http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		http_request.setRequestHeader("Content-length", data.length);
		http_request.send(data);
	}
}

function GMapAffichPoint(address,nb,details,longit,latit,uid)
{
	if(longit == 0 && latit == 0)
	{
		GMapSearchAddress (address,nb,details);	
		
		var rez = geocoder.getLatLng(
			address,
			function(point)
			{
				if(point != null)
				{	
					param = 'id='+uid+'&lng='+point.lng()+'&lat='+point.lat();
					defUrl = 'typo3conf/ext/tx_alienor_gmap/pi1/maj-coord.php';
					var data = param;
					var http_request = getHTTPObject();
					http_request.onreadystatechange = function(){
						if (http_request.readyState == 4) 
						{
							document.getElementById("temp").innerHTML = http_request.responseText;
						}
					};
		
					http_request.open('POST', defUrl, true);
					http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
					http_request.setRequestHeader("Content-length", data.length);
					http_request.send(data);
				}
			}
		);
		
		if(!rez)
		{ 
			taddress = address.split(',');
			GMapSearchAddress (taddress[1],nb,details);	

			var rez2 = geocoder.getLatLng(
			taddress[1],
			function(point)
			{
				if(point != null)
				{	
					param = 'id='+uid+'&lng='+point.lng()+'&lat='+point.lat();
					defUrl = 'typo3conf/ext/tx_alienor_gmap/pi1/maj-coord.php';
					var data = param;
					var http_request = getHTTPObject();
					http_request.onreadystatechange = function(){
						if (http_request.readyState == 4) 
						{
								document.getElementById("temp").innerHTML = http_request.responseText;
						}
					};
		
					http_request.open('POST', defUrl, true);
					http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
					http_request.setRequestHeader("Content-length", data.length);
					http_request.send(data);
				}
			});
		}
	}
	else
	{
		tab_marker[nb] = GMapCreateMarkerFromPoint(new GLatLng(latit,longit), icon, details);
  		map.addOverlay(tab_marker[nb]);
	}
}


function GMapCreateMarkerFromPoint(point, icon, info)
{
	var marker = new GMarker(point, icon);
	GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowHtml(info);
	});
	return marker;
}

function showInfo(num,info){ 
	var marker = tab_marker[num];
	if(marker != null)
		marker.openInfoWindowHtml(info);
}



function GMapSearchAddress (address,compt,details) {

	//var address_marker = null;
	//alert(address);
	nb_marker = compt;
	if (address) {
		geocoder.getLatLng(
	    address,
	    function(point) {
	      if (point) {
	 
	      		tab_marker[compt] = GMapCreateMarkerFromPoint(point,icon,details);
	      			map.addOverlay(tab_marker[compt]);
	      } 
	    }
	  );
	}
}

function resetPoints()
{
	//nb_marker+1
	for(i=0;i<tab_marker.length;i++){
		if(tab_marker[i] != null)
		{
			map.removeOverlay(tab_marker[i]);
		}
	}
	
	for(i=0;i<tab_default.length;i++){
		if(tab_default[i] != null)
		{
			map.removeOverlay(tab_tab_default[i]);
		}
	}
}

function gup(name)
{
	name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
	var regexS = "[\\?&]"+name+"=([^&#]*)";
	var regex = new RegExp( regexS );
	var results = regex.exec( window.location.href );
	if( results == null )
		return "";
	else
		return results[1];
}

function GMapLoad() {
	
	var id = gup('id');

	if (GBrowserIsCompatible()) {
  	
	    map = new GMap2(document.getElementById("mapgmap"));
	    geocoder = new GClientGeocoder();
	    
	    map.setCenter(new GLatLng(orig_lat, orig_lng), zoom_orig);
	    map.addControl(new GLargeMapControl());
	    map.addControl(new GMapTypeControl());
		
	    icon = GMapCreateIcon(icons.f, icons.w, icons.h);
		GMAPDefaut(id);
		TEXTDefaut(id);
	}
}

function GMapCreateIcon(f, w, h) {
	var ico = new GIcon();

	ico.iconSize = new GSize(w, h);
	ico.iconAnchor = new GPoint(w/2, h/2);
	ico.infoWindowAnchor = new GPoint(w/2, h/2);
	ico.image = f;

	return ico;
}

function GMapUnLoad() {
	GUnload();
}
