//<![CDATA[

//Initialisation des variables
var map;
var initLat = 48.806863;
var initLon = -63.109053;
var initZoom = 5; 
var imageLoading = false;
var menuCollection = true;

function getHttpRequest()
{
	var httpRequest= null;
	try{
		httpRequest= new XMLHttpRequest();	
	}catch(e)
	{
		try{
			httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
		}catch(e)
		{httpRequest = new ActiveXObject("Microsoft.XMLHTTP");}
	}
	
	return(httpRequest);
}

function load() 
{   
 	if (GBrowserIsCompatible()) 
    {	
		//Obtention de l'instance de carte
       	window.map = new GMap2(document.getElementById("map"));
		map.addControl( new GMapTypeControl());
		
       	//Center la carte sur le fleuve
       	window.map.setCenter(new GLatLng(initLat, initLon), initZoom);

       	map.setMapType(G_SATELLITE_MAP);
       	map.addMapType(G_PHYSICAL_MAP);
       	
       	//Ajout des controles
       	window.map.addControl(new GSmallMapControl());
      	//Permettre le zoom avec la molette de la souris
       	window.map.enableScrollWheelZoom();
       	
       	//Définir l'évenement click sur le marker
		GEvent.addListener(window.map, 'movestart', function() 
		{
		    document.forms[0].lstLocalite.value = "";
		});
		
		
		function wheelevent(e)
   		{
        	if (!e) e = window.event;
        		if (e.preventDefault) e.preventDefault();
        			e.returnValue = false;
    	}
    	GEvent.addDomListener(document.getElementById("map"), "DOMMouseScroll", wheelevent);
    	document.getElementById("map").onmousewheel = wheelevent; 
		
		window.getTimeZone();
		
		//Lancer la recherche
		if(window.searchOnStartup)
			searchImage();
    }
}


 //Fonction qui crée un marqueur selon les valeur passée en paramètre
 function createMarker(url, point) 
 {
 	var icon;
 		
 	//Définition des parametre d'une icone
 	icon = new GIcon();
 	icon.iconSize = new GSize(10, 10);
 	icon.image = "images/orange.png";
 	icon.iconAnchor = new GPoint(5, 5);
 	icon.infoWindowAnchor = new GPoint(1, 1);
	 	
	//Obtention d'une instance de marqueur selon les paramêtres fixés préalablement
	var marker = new GMarker(point, icon);
	
	//Définir l'évenement click sur le marker
	GEvent.addListener(marker, 'click', function() 
	{
	    popup(url, 'imagelist', 400, 400);
	});
	return marker;
 }
 
 
 function searchImage()
 {
 	Element.hide("nbImage");
 	Element.hide("non-ref");
    Element.hide("messageLimit");
 	checkLoading("start");
 	
 	//Fermeture des fenetres d'informations
 	window.map.closeInfoWindow();
 	//Suppression des markers
 	window.map.clearOverlays();
 	
	var minColl = false; 
 	var urlGet = "?lg="+document.forms[0].lg.value;
 	
 	if(document.forms[0].chkCollection.value == null)
 	{
 		coll = document.forms[0].chkCollection;
	 	for(var i = 0; i < coll.length; i++)
	 	{
	 		if(coll[i].checked)
	 		{
	 			urlGet +="&chkCollection="+coll[i].value;
	 			minColl= true;
	 		}
	 	}
	 }else
	 {
	 	if(document.forms[0].chkCollection.checked)
	 	{
	 		urlGet +="&chkCollection="+document.forms[0].chkCollection.value;
	 		minColl= true;
	 	}
	 }
 	
	if(minColl)
 	{	
	 	urlGet += "&txtDateMin="+document.forms[0].txtDateMin.value;
	 	urlGet += "&txtDateMax="+document.forms[0].txtDateMax.value;
	 	urlGet += "&txtKeywords="+document.forms[0].txtKeywords.value;
	 	urlGet += "&timezone="+document.forms[0].timezone.value;
	 	if(document.forms[0].chkResolution.checked == true)
	 		urlGet +="&chkResolution=true";
	 	
	 	//Obtention de la bbox de la carte google
	 	var bounds = map.getBounds();
	 	urlGet += "&latmin="+bounds.getSouthWest().lat();
	 	urlGet += "&latmax="+bounds.getNorthEast().lat();
		urlGet += "&lonmin="+ bounds.getSouthWest().lng();
		urlGet += "&lonmax="+bounds.getNorthEast().lng();
		
	 	//Obtention d'une instance httprequest
	 	var request = this.getHttpRequest();
	 	
	 	if(request == null)
	 	{
	 		alert("Désolé, Votre navigateur ne supporte pas l'ajax");
	 		return;
	 	}else
	 	{
	 		request.open("GET","xmlGenerator"+urlGet,true);
	 		request.onreadystatechange=function()
	 		{
	 			if(request.readyState == 4)
	 			{
	 				var nbImage = 0;  				
	 				var collection = "";
	 	
	 				var xmlResponse = request.responseXML.documentElement;
	 				
	 				if(xmlResponse.getElementsByTagName("error")[0] != null)
	 					alert(xmlResponse.getElementsByTagName("error")[0].firstChild.nodeValue);
	 				else
	 				{
		 				var pointTag = xmlResponse.getElementsByTagName("point");
		 				
		 				for(var i = 0; i < pointTag.length; i++)
		 				{
		 					var imgId = "";
	 						var imgCoords= "";
	 						var collection = "";
	 						
		 					var imageTag = pointTag[i].getElementsByTagName("image");
		 					for(var j = 0; j < imageTag.length; j++)
		 					{
		 						imgId += "&idImage="+imageTag[j].getElementsByTagName("idImage")[0].firstChild.nodeValue;
		 						collection += "&idCollection="+imageTag[j].getElementsByTagName("idCollection")[0].firstChild.nodeValue;
		 						nbImage++;
		 					}
		 					
		 					imgCoords = new GLatLng(parseFloat(pointTag[i].getElementsByTagName("latitude")[0].firstChild.nodeValue),
		 											parseFloat(pointTag[i].getElementsByTagName("longitude")[0].firstChild.nodeValue));
		 					
		 					var url= "image_list.jsp?lg="+document.forms[0].lg.value+imgId+collection;
		         			//Écriture du point
		   					window.map.addOverlay(createMarker(url, imgCoords));
		 				}
		 				
		 				//Vérification de la limite
		 				if(xmlResponse.getElementsByTagName("moreImages")[0].firstChild.nodeValue == "true")
			 				Element.show("messageLimit");
			 			else
			 				Element.hide("messageLimit");
			 				
			 				
			 			//Vérification de la présence d'images non géo-ref
			 			var noRefTag = xmlResponse.getElementsByTagName("non-ref");
			 			if(noRefTag.length > 0)
			 			{
			 				imgId = "";
			 				collection = "";
			 				for(var i = 0; i < noRefTag.length; i++)
		 					{
		 						imgId += "&idImage="+noRefTag[i].getElementsByTagName("idImage")[0].firstChild.nodeValue;
		 						collection += "&idCollection="+noRefTag[i].getElementsByTagName("idCollection")[0].firstChild.nodeValue;
		 					}
		 					document.getElementById("non-ref").innerHTML = "<a href=\"javascript:void(0);\" onclick=\"javascript:popup('image_list.jsp?lg="+document.forms[0].lg.value+imgId+collection+"','imagelist',400,400);\" alt=\"\">"+linkNoRef+"</a>";
		 					Element.show("non-ref");
		 				}else
		 					Element.hide("non-ref");
		 			}	
		 			checkLoading("stop");
		 			
		 			//Affichage du nombre d'images
		 			document.getElementById("nbImage").innerHTML = result+" "+nbImage+" image(s)";
		 			Element.show("nbImage");
	 			}
	 		};
	 		
	 		request.send(null);
	 	}
	}else
	{
		if(document.forms[0].lg.value == "fr")
			alert("Veuillez sélectionner au moins une collection");
		else
			alert("Select at least one collection");
			
		checkLoading("stop");
	}
 	
 	return;
 }
 
 function resetMap()
 {
 	//Fermeture des fenetres d'informations
 	window.map.closeInfoWindow();
 	//Suppression des markers
 	window.map.clearOverlays();
 	//Recenter la carte sur le fleuve
    window.map.setCenter(new GLatLng(initLat, initLon), initZoom);
    checkLoading("stop");
    Element.hide("non-ref");
    Element.hide("nbImage");
    Element.hide("messageLimit");
 }



//]]>
