// map
var mdvNetplanArr = new Array();
var mdvNetplanConfigs = new Array();
var usagesNetplan = new Array("origin", "destination", "via", "dm", "ttb", "stt", "pp");
// initial center and zoom level
var xNetplan = '3900'
var yNetplan = '2816';
var zoomNetplan = '0';

// netplan configuration
function initMdvInlineNetplanConfig(usage) {
	// netplan configuration
	mdvNetplanConfigs[usage] = mdvNetplanConfig.clone();
	mdvNetplanConfigs[usage].add('serverURL', 'http://efa.vor.at/map/vor/Netzplan/maps/'); 
	mdvNetplanConfigs[usage].add('transparentImg', 'img/transparent.gif');
	mdvNetplanConfigs[usage].add('backgroundColour', '#ffffff');
	mdvNetplanConfigs[usage].add('imagePath', 'img/');
	mdvNetplanConfigs[usage].add('network', 'vor');
	mdvNetplanConfigs[usage].add('defaultScale', zoomNetplan);
	mdvNetplanConfigs[usage].add('xCenterReal', xNetplan); 
	mdvNetplanConfigs[usage].add('yCenterReal', yNetplan); 
	mdvNetplanConfigs[usage].add('mapName', 'TEL5');
	mdvNetplanConfigs[usage].add('block', '100');
	mdvNetplanConfigs[usage].add('toolTimeOut', '20');
	mdvNetplanConfigs[usage].add('zoomOnDoubleClick', 'true');
	mdvNetplanConfigs[usage].add('language', mapLanguage);
	mdvNetplanConfigs[usage].add('useMagnifyGlass', 'true');
	mdvNetplanConfigs[usage].add('cursorMove', 'img/grabbing_topLeft.cur');
	mdvNetplanConfigs[usage].add('cursorIdle', 'img/grab_topLeft.cur');
	mdvNetplanConfigs[usage].add('enableHotspots', 'true');
	mdvNetplanConfigs[usage].add('showHotspotLevel', '2');
	mdvNetplanConfigs[usage].add('hotspotURL', 'script/json.vor.js');
}

// This function loads and initializes the netplan when the site is loaded.
function onLoadInlineNetplanHandler(mapUsage, xCenter, yCenter) {
	if (document.getElementById('mdvNetplan_' + mapUsage)) {
		document.getElementById('mdvNetplan_' + mapUsage).style.display = 'block';
	
		initMdvInlineNetplanConfig(mapUsage);

		if (mapUsage && document.getElementById('mdvNetplan_' + mapUsage)) {
			if (mdvNetplanArr[mapUsage] == null) 
				if (xCenter && yCenter &&xCenter!='' &&yCenter!='')
					mdvNetplanArr[mapUsage] = new MDVNetplanHelper(mapUsage, xCenter, yCenter);
				else
					mdvNetplanArr[mapUsage] = new MDVNetplanHelper(mapUsage, xNetplan, yNetplan);
		}
	}
};

// This function unloads the netplan when the site is unloaded.
function onUnloadInlineNetplanHandler() {
	for(var i=0; i<usagesNetplan.length; i++) {
		var usage = usagesNetplan[i];
		if (mdvNetplanArr[usage]) 
			mdvNetplanArr[usage].destroy();
	}
};


// This function destroys the netplan and clears the cache.
MDVNetplanHelper.prototype.destroy = function() {
	this.mdvMap.destroy();
	this.mdvMap = null;
};


// This function loads the map and minimap
function MDVNetplanHelper(mapUsage, xCenter, yCenter) {
	this.mdvMap = null;
	this.value = null;
	this.sync = null;
	this.usage = mapUsage;
	
	// initialize map and register events
	if (this.mdvMap == null) {
		this.mdvMap = new MDVMap(document.getElementById('mdvNetplan_' + this.usage));
		
		// correct the netplan control alt texts
		var controlText = new Array();
		controlText['goNorth'] = goNorth;
		controlText['goWest'] = goWest;
		controlText['goEast'] = goEast;
		controlText['goSouth'] = goSouth;
		controlText['lastResult'] = lastResult;
		controlText['zoomIn'] = zoomIn;
		controlText['zoomOut'] = zoomOut;
			
		new MDVMapNavigator(this.mdvMap);
		new MDVMapControl(this.mdvMap, controlText);
	}
	
	this.mdvMap.events.registerEvent(MDVEvent_OBJECT_CLICKED, this, onObjectClicked);
	//this.mdvMap.events.registerEvent(MDVEvent_MOUSE_MOVED, null, function (id, msg, obj) { window.status = obj; }); 

	// execute netplan
	if (this.mdvMap) 
		this.mdvMap.execute(mdvNetplanConfigs[mapUsage]);			

	// sets the zoomlevel and centre for an identified locality
	this.doIdentified(xCenter, yCenter);
	
	
};


// ==================================================================
// Input map functionality.
// ==================================================================

// Sets the zoomlevel and center for an identified locality
MDVNetplanHelper.prototype.doIdentified = function(xCenter, yCenter) {
	if (xCenter!='' && xCenter!='') {
		var usage = this.usage;
		var mapName = this.mdvMap.config.get('mapName');
		var mapCoords = new MDVCoordinates(mapName, xCenter, yCenter);
		this.mdvMap.setCentre(mapCoords);
		
		this.mdvMap.update();
	}	
} 
	
// Submit a clicked stop.
function onObjectClicked(id, msg, obj) {
	var name 		= document.getElementById('nameInfo_' + this.usage);
	var place 		= document.getElementById('placeInfo_' + this.usage);
	var placeState 	= document.getElementById('placeState_' + this.usage);
	var type 		= document.getElementById('typeInfo_' + this.usage);
	var execInst 	= document.getElementById('execInst');
	
	var form = document.forms[0];

	if(this.usage=='ttb')
		form = document.forms[1];

	if(this.id != 'dm' && this.id != 'stt')
		execInst.value = 'verifyOnly';

	name.value = obj[0];
	type.value = 'stopID';
	
	
	if(this.usage=='pp')
		document.forms[0].command.value='ppOdvSubmit';
		
	document.getElementById('itdLPxx_netplanOpen_' + this.usage).value = '';

	form.submit();
}

















