
window.onunload=unloadWindow;

// Variable rustine IE pour stabilité...
var iCloseWindowsFuncCallNb = 0;

/**
* Cette fonction permet de fermer toutes les fenêtres à la fermeture de l'application.
*/
function unloadWindow(e){
	if(map_toolbar.document)
		map_toolbar.closeWindows();
}

/**
* Cette fonction permet de changer de carte.
*/
function changeMapFile(iMapId,iMapCompareId,sSessId){
	if(map_toolbar.document)
		map_toolbar.changeMapFile(iMapId,iMapCompareId,sSessId);
}

/**
* Cette fonction permet d'ouvrir une carte de comparaison.
*/
function mapCompare(iMapCompareId,sSessId){
	if(map_toolbar.document)
		map_toolbar.mapCompare(iMapCompareId,sSessId);
}

/**
* Cette fonction permet d'ouvrir la fenêtre des crédits.
*/
function openVersionWindow(sFile){
	if(map_toolbar.document)
		map_toolbar.openVersionWindow(sFile);
}

/**
* Cette fonction permet d'ouvrir la fenêtre d'aide.
*/
function openHelpWindow(sFile){
	if(map_toolbar.document)
		map_toolbar.openHelpWindow(sFile);
}

/**
* Cette fonction générique permettant d'ouvrir une fenêtre.
*/
function openStandardWindow(oDiv) {
	if(map_toolbar.document)
		map_toolbar.openStandardWindow(oDiv);
}

/**
* Cette fonction permet d'ouvrir la fenêtre "mesure et sélection".
*/
function openDrawWindow() {
	if(map_toolbar.document)
		map_toolbar.openDrawWindow();
}

/**
* Cette fonction permet de quitter l'application "proprement" (fermeture des fenêtres filles, gestion des SESSIONS PHP).
*/
function quitter() {
    if (confirm("Voulez-vous quitter l'application ?")) {
		parent.document.formIndex.mode.value="quit";
		parent.document.formIndex.submit();
    }
}

/**
* Cette fonction permet de zoomer sur la carte à partir d'un évènement.
*/
function zoomByOverview(e){
	if(parent.frames.map_toolbar.bWait==true) return false;
	if((parent.document.getElementById('imgOverview').width<6)||(parent.document.getElementById('imgOverview').height<6)) return false;
	var oEvent,iX,iY,iCoordX,iCoordY,iDiffX,iDiffY;
	(document.all) ? oEvent=event : oEvent=e;
	iX=oEvent.clientX-parseInt(document.getElementById('divOverview').offsetLeft+document.getElementById('divOverview_c').offsetLeft-2);
	iY=oEvent.clientY-parseInt(document.getElementById('divOverview').offsetTop+document.getElementById('divOverview_c').offsetTop+25-2);
	if (document.all){
		iX=iX-1;
		iY=iY-1;
	}
	if(!isNaN(iX) && !isNaN(iY)){
		iCoordX=parseInt(aExtentOverview[0]+((aExtentOverview[2]-aExtentOverview[0])*(((iX)/ parent.document.getElementById('imgOverview').width)*100))/100);
		iCoordY=parseInt(aExtentOverview[1]+((aExtentOverview[3]-aExtentOverview[1])*(100-(((iY)/ parent.document.getElementById('imgOverview').height)*100)))/100);
		iDiffX=(parent.frames.map_toolbar.document.mapForm.mf_xMax.value-parent.frames.map_toolbar.document.mapForm.mf_xMin.value)/2;
		iDiffY=(parent.frames.map_toolbar.document.mapForm.mf_yMax.value-parent.frames.map_toolbar.document.mapForm.mf_yMin.value)/2;
		if(!isNaN(iCoordX) && !isNaN(iCoordY) && !isNaN(iDiffX) && !isNaN(iDiffY)){
			parent.frames.map_toolbar.document.mapForm.mf_tool.value="redraw";
			parent.frames.map_toolbar.document.mapForm.mf_xMin.value=parseInt(iCoordX-iDiffX);
			parent.frames.map_toolbar.document.mapForm.mf_yMin.value=parseInt(iCoordY-iDiffY);
			parent.frames.map_toolbar.document.mapForm.mf_xMax.value=parseInt(iCoordX+iDiffX);
			parent.frames.map_toolbar.document.mapForm.mf_yMax.value=parseInt(iCoordY+iDiffY);
			parent.frames.map_toolbar.map_refresh();
		}
	}
}

/**
* Cette fonction est appelée lorsqu'une erreur survient dans l'application.
* \param sType Type d'erreur rencontrée
* \param iMode Valeur du mode courant (carte simple ou comparaison)
*/
function onError(sType, iMode){
	switch(sType){
		case "fatal" :
			//Notamment appelé lorsque l'extension php-mapscript n'est pas chargée
			parent.oMap.traitementTermine();
			alert("Une erreur fatale vient de se produire.\nL'application va fermer.");
			window.close();
		break;
		case "mapfile" :
			switch(iMode) {
				case 0 :
					parent.oMap.traitementTermine();
					parent.oMap.mapLayerCurHTML = parent.oMap.mapLayerDefHTML.replace(/IMAGE/,"images/null.png");
					parent.oMap.setMapLayerHTML(parent.oMap.mapLayerCurHTML);
					parent.frames.map_toolbar.document.getElementById("Layer1").innerHTML = "";
					alert("La carte exploite une source de données invalide ou inaccessible.\nVeuillez choisir une autre carte.");
				break;
				default :
					alert("La (les) carte(s) exploite(nt) une source de données invalide ou inaccessible.\nL'application va se recharger automatiquement avec les paramètres par défaut.");
					document.formIndex.mode.value = "connected";
					document.formIndex.mapCompareId.value = -1;
					document.formIndex.submit();
				break;
			}
		break;
	}
}
