
/***************************************************************************************************
*****************************To define all option, please go on:************************************
****************************************************************************************************
**********http://code.google.com/intl/fr/apis/maps/documentation/javascript/reference.html**********
****************************************************************************************************
******************************Autor: Florent Cardot (Varfendell)************************************
****************************************************************************************************/

var carte;	//declaration de la carte
var bounds;	//limite de la carte en fonciton des marqueurs
var marker = []; //tableau contenant tout les marqueurs
var info = []; //tableau contenant toute les info windows
var nbMarker = [];
var tabCoord;
var curentInfoWindows;

/*************************************************************************************/
/*****************************Following code initialize the all***************************/
/*************************************************************************************/

function InitTab(i)
{
	for (var a = 1; a <= i; a++)
	{
		info[a] = new Array();
		marker[a] = new Array();
		nbMarker[a] = 0;
	}
	curentInfoWindows = new google.maps.InfoWindow(
			{
				content: ""
			});
	
}






/*************************************************************************************/
/*****************************Following code define the map***************************/
/*************************************************************************************/

function Carte	(
					optZoom,
					Lattitude,
					Longitude,
					optMapTypeId
				)
{
	var optCenterMap = new google.maps.LatLng(Lattitude, Longitude);
	var mapType = google.maps.MapTypeId[optMapTypeId];
	var options =
		{
			center: 				optCenterMap, 		//LatLng(lat:number, lng:number) 		obligatoire
			mapTypeId: 				mapType,			//HYBRID, ROADMAP, SATELLITE, TERRAIN 	obligatoire
			zoom: 					optZoom				//number 								obligatoire
		};
	carte = new google.maps.Map(document.getElementById("map"), options);
	
	
	carte.scaleControl = true ;
	
	
	

	//bounds = new google.maps.LatLngBounds(); //-------------------Pour centrer la carte autour des marqueurs
}

/*************************************************************************************/
/**************************Following code define markers******************************/
/*************************************************************************************/


	
Carte.prototype.addMarker = function 	(
											Window,
											Nom,
											Image,
											Latitude,
											Longitude,
											i,
											j,
											bool
										)
{

	nbMarker[i] = j;
	
	
	
	
	info[i][j] = new google.maps.InfoWindow(
	{
		content: Window,
		maxWidth: 500,

		
	});
	
	var optCenterMarker = new google.maps.LatLng(Latitude, Longitude);
	//bounds.extend(optCenterMarker);//-------------------Pour centrer la carte autour des marqueurs
	
	marker[i][j] = new google.maps.Marker(
	{
		position : 	optCenterMarker,
		title : 	Nom,
		icon : 		Image,
		visible:	bool,
		map : 		carte
	});
	google.maps.event.addListener(marker[i][j], 'click', function()
	{	
		carte.setZoom(16);
		carte.setMapTypeId(google.maps.MapTypeId.TERRAIN);
		curentInfoWindows = info[i][j];
		info[i][j].open(carte, marker[i][j]);

		
	});
	
	//carte.fitBounds(bounds);//-------------------Pour centrer la carte autour des marqueurs
};


 function moveToFrance() {
    var france = new google.maps.LatLng( 46.5,1);
	carte.setMapTypeId(google.maps.MapTypeId.SATELLITE);
    carte.setCenter(france);
	carte.setZoom(5);
	curentInfoWindows.close();
	
 }



/*************************************************************************************/
/****************************Following code define checkbox***************************/
/*************************************************************************************/

/*
function selectok(numChoix,i)
{
	if (numChoix=='choix1')
	{
		for (var e = 1; e <= nbMarker[1]; e++)
		{
			marker[1][e].setVisible(true);
		}
			for (var d = 1; d <= nbMarker[2]; d++)
		{
			marker[2][d].setVisible(true);
		}
	}
	
	if (numChoix=='choix2')
	{
		for (var a = 1; a <= nbMarker[2]; a++)
		{
			marker[2][a].setVisible(false);
		}
		for (var e = 1; e <= nbMarker[1]; e++)
		{
			marker[1][e].setVisible(true);
		}
	}
	if (numChoix=='choix3')
	{
		for (var c = 1; c <= nbMarker[1]; c++)
		{
			marker[1][c].setVisible(false);
		}
			for (var d = 1; d <= nbMarker[2]; d++)
		{
			marker[2][d].setVisible(true);
		}
	}
};
*/
function detectBrowser() {
    var useragent = navigator.userAgent;
    var mapdiv = document.getElementById("map");
 
    if (useragent.indexOf('iPhone') != -1 || useragent.indexOf('Android') != -1) {				
      mapdiv.style.width = '100%';
      mapdiv.style.height = '100%';
      myOptions = {
        navigationControlOptions: {
          style: google.maps.NavigationControlStyle.ANDROID
        },
        mapTypeControlOptions: {
          style: google.maps.MapTypeControlStyle.DROPDOWN_MENU
        },
        disableDoubleClickZoom: true,
        scaleControl: false
      };
      map.setOptions(myOptions);
    } else {
      mapdiv.style.width = '550px';
      mapdiv.style.height = '350px';
    }
  }




function boxclick(box, i)
{
	if (box.checked)
	{
		for (var a = 1; a <= nbMarker[i]; a++)
		{
			marker[i][a].setVisible(true);
		}
	} else
	{
		for (var a = 1; a <= nbMarker[i]; a++)
		{
			marker[i][a].setVisible(false);
		}
	}
};

function AllBoxClick(box)
{
	var monForm = document.getElementById("checkbox");
	if (box.checked)
	{
		for (var i = 1; i <= monForm.elements.length; i++)
		{
			monForm.elements[i-1].checked = true;
		}
		setTimeout("this.AllView(1)",1);
	} else
	{
		for (var i = 1; i <= monForm.elements.length; i++)
		{
			monForm.elements[i-1].checked = false;
		}
		setTimeout("this.AllView(0)",1);
	}
};

function AllView(box)
{
	var monForm = document.getElementById("checkbox");
	if (box)
	{
		for (var i = 1; i <= monForm.elements.length; i++)
		{
			for (var b = 1; b <= nbMarker[i]; b++)
			{
				marker[i][b].setVisible(true);
			}
		}
	} else
	{
		for (var i = 1; i <= monForm.elements.length; i++)
		{
			for (var b = 1; b <= nbMarker[i]; b++)
			{
				marker[i][b].setVisible(false);
			}
		}
	}
};


