<!--
var blnPlugInExist = false;

// CONTROLLO ACTIVE-X //
 
with (navigator) 
	if (appName.indexOf('Microsoft')!=-1 && appVersion.indexOf('Mac')==-1)
		document.write('<script language="VBScript">\nOn error resume next\n'+'blnPlugInExist = Not IsNull(CreateObject("Autodesk.MGMap.1"))\n</script>');

function checkPlugin() {
	var blnOk = false;
  	with (navigator)
		if (appName.indexOf('Microsoft')==-1 || (plugins && plugins.length)) {
			//blnOk = (plugins && plugins[plgIn]);
			blnOk = true;
		} else if (appVersion.indexOf('3.1')==-1) {
			if (window.blnPlugInExist!=null) 
				blnOk = window.blnPlugInExist;
		}
		if (!blnOk) {
			url.open('pop_mapguide.htm','POP_MG','left=200,top=200,width=420,height=270');
		}
}   

function getMap() {
	if (navigator.appName == "Netscape") {
		return document.map;
	} else {
		return window.map;
	}
}

function mapInit() {
	var blnOk = false;
  	with (navigator)
		if (appName.indexOf('Microsoft')==-1 || (plugins && plugins.length)) {
			blnOk = true; //(plugins && plugins[plgIn]);
		} else if (appVersion.indexOf('3.1')==-1) {
			if (window.blnPlugInExist!=null) 
				blnOk = window.blnPlugInExist;
		}
	if (!blnOk) {
		url.open('pop_mapguide.htm','POP_MG','left=200,top=200,width=420,height=270');
	} else {
		var verNum = parseFloat(getMap().getApiVersion());
		if (verNum < 5) {
			url.open('pop_mapguide.htm','POP_MG','left=200,top=200,width=420,height=270');
		} else {
			initNetscapeHandler();
		}		
	}
}   

function initNetscapeHandler() {
	var verNum = parseFloat(getMap().getApiVersion());
	if (navigator.appName == "Netscape") {
		if (verNum >= 1.2) {
			getMap().setBusyStateChangedObserver(document.obs);
			getMap().setMapLoadedObserver(document.obs);
			getMap().setSelectionChangedObserver(document.obs);
			getMap().setViewChangedObserver(document.obs);
        }
    }
}

function mapCopy() {
	getMap().copyMap();
}

function mapStop() {
	getMap().stop();
}

// ************************************************ //
// ***** Funzioni JavaScript per zoom e pan. ****** //
// ************************************************ //

function mapMoveDown(offSet) {
	alert("down"+offSet);	
}

function mapMove(direction, offset) {
	var mapObj = getMap();
	if (direction == "Left" | direction == "Right")
	   var dimVar = mapObj.getWidth("M");
	if (direction == "Up" | direction == "Down")
	   var dimVar = mapObj.getHeight("M");
	dimVar = (offset / 100) * dimVar;
	var xyCenter = mapObj.lonLatToMcs(mapObj.getLon(), mapObj.getLat());
	var mcsTOmeters = map.getMCSScaleFactor();
	dimVar = dimVar / mcsTOmeters;
	switch(direction) {
		case "Left":
			xyCenter.setX(xyCenter.getX() - dimVar);
			break;
		case "Right":
			xyCenter.setX(xyCenter.getX() + dimVar);
			break;
		case "Up":
			xyCenter.setY(xyCenter.getY() + dimVar);
			break;
		case "Down":
			xyCenter.setY(xyCenter.getY() - dimVar);
			break;
	}
	xyCenter = map.mcsToLonLat(xyCenter.getX(), xyCenter.getY());
	mapObj.zoomScale(xyCenter.getY(), xyCenter.getX(), mapObj.getScale());
}

function mapMoveRight(offSet) {
	alert("right"+offSet);	
}

function mapMoveUp(offSet) {
	alert("up"+offSet);	
}

function mapPan() {
	getMap().panMode();
}

function mapRefresh() {
	var mapObj = getMap();
	var mapLayers = mapObj.getMapLayersEx();
	for (i=0; i<mapLayers.size(); i++) {
		mapLayers.item(i).setRebuild(true);
	}
	mapObj.refresh();
}

function mapSelect() {
	getMap().selectMode();
}

function mapZoomCenter() {
	var mapObj = getMap();
	var selSet = mapObj.getSelection().getMapObjectsEx(null);
	if (selSet.size()>0) {
		var aryVertices = mapObj.createObject('MGCollection');
		var aryNumberOfVertices = mapObj.createObject('MGCollection');
		var intRet = selSet.item(0).getVertices(aryVertices, aryNumberOfVertices)			

		var strLat = aryVertices.item(0).getY();
		var strLon = aryVertices.item(0).getX();
		
		var objPoint = mapObj.mcsToLonLat(strLon, strLat)
		
		mapObj.zoomScale(objPoint.getY(),objPoint.getX(),strScale);
	}
}

function mapZoomExt() {
	getMap().zoomOut();
}

function mapZoomIn() {
	getMap().zoomInMode();
}

function mapZoomPrev() {
	getMap().zoomPrevious();
}

function mapZoomSelected() {
	var mapObj = getMap();
	var selSet = mapObj.getSelection().getMapObjectsEx(null);
	if (selSet.size()>0) mapObj.zoomSelected();
}

function mapZoomOut() {
	getMap().zoomOutMode();
}

function mapSelZoom() {
	var mapObj = getMap();
	mapObj.selectMapObjectsDlg();
	mapObj.zoomSelected();
}

function initMapPage() {

}

function selMapFeature() {
	if (strLayer!='') {
		var mapObj = getMap();
		var mapSel = mapObj.getSelection();
		var mapLayer = mapObj.getMapLayer(strLayer);
		var mapObjects = mapObj.createObject("MGCollection");
		var selObj = mapLayer.getMapObject(strKey);
		if (selObj != null) {
			mapObjects.add(selObj);
			mapSel.clear();
			if (mapObjects.size() > 0) {
				mapSel.addObjectsEx(mapObjects, false);
			}
		}
	}
}

function getMapWidth() {
	var mapObj = getMap();
	alert(strLat+' - '+strLon+' - '+strWidth);
	alert(mapObj.getLat()+' - '+mapObj.getLon()+' - '+mapObj.getWidth('KM'));
}


// Funzioni JavaScript per processare gli eventi in modo comune nei due ambienti (IE e
// Netscape).
// Gli eventi ActiveX events vengono passati dalle funzioni VBScript.
// Gli eventi Plug-In vengono passati dall'Applet Java MapGuideObserver.

function onBusyStateChanged(map, busyState) {

}

function onDigitizedCircle(map, units, center, radius) {

}

function onDigitizedPoint(map, point) {

}

function onDigitizedPolygon(map, numPoints, points) {

}

function onDigitizedPolyline(map, numPoints, points) {

}

function onDigitizedRectangle(map, anchorPt, endPt) {

}

function onMapLoaded(map) {

}

function onSelectionChanged(map) {
	var mapSel = map.getSelection();
	var mapLayer = map.getMapLayer(strLayer);
	var selObj = mapSel.getMapObjects(mapLayer);
	if  (selObj.size()==0) {
		
	} else {
		
	}
}

function onViewChanged(map) {

}

function addLayer() {
	var strFile = window.prompt("Insrisci il nome del layer", "");
	if (strFile != null && strFile != "") {
		var mapObj = getMap();
		var mapLayers = mapObj.getMapLayersEx();
		var blnExist = false;
		for (i=0; i<mapLayers.size(); i++) {
			if (mapLayers.item(i).Name.toUpperCase() == strFile.toUpperCase()) {		
				alert("Il layer '"+mapLayers.item(i).Name+"' è già presente nella mappa!");
				blnExist = true;
				break;
			}
		}
		if (!blnExist) {
			mapObj.createLayer("redline", strFile);
			fillLayersCombo();
			parent.frames[toolsFrame].document.forms[toolsForm].elements[lyCombo].selectedIndex = parent.frames[toolsFrame].document.forms[toolsForm].elements[lyCombo].options.length - 1;
		}
	}
}

function saveMap() {
  	var mapObj = getMap();
	var strFile = window.prompt("Inserisci il nome del file", "*.mwf");
	var strPwd = parent.frames[toolsFrame].document.forms[toolsForm].elements[txtPwd].value;
	if (strFile != ""){ 
		if (!mapObj.saveMWF(strFile, strPwd)){
	   		objError = mapObj.getLastError();
		   	lngCode = objError.getCode();
		   	switch (lngCode) {
		   		case -5:
			    	alert("Password non valida!");
					break;
		      	case -16:
			    	alert("Non si dispone dei permessi di scrittura sul server!");
					break;
			  	default:
			    	alert("Errore generico!");
					break;
		   	}
		} else {
			alert("Il file è stato salvato!");
		}
    }
}
//-->
