/**
* Import this file to test the work of some MapCat API events.
* It will register event listeners to output debugging messages.
*
* @author Priit Kervi (priit.kervi@regio.ee)
*/

FlashApi.onMenuLoaded = function(menu) {
	var text = "FlashApi.onMenuLoaded:\n";	
	for (var i = 0; i < menu.length; i++) {
		var g = menu[i];
		text += g.id + ": " + g.name + "\n";
		var layers = g.layers;
		for (var j = 0; j < layers.length; j++) {
			var l = layers[j];
			text += "\t" + l.id + "(" + l.name + "): checked " + l.checked + ", enabled " + l.enabled + 
				", type " + l.type + ", style " + l.style + "\n";
		}
	}	
	if (console) 
		console.log(text);
}

FlashApi.onLayersDataLoaded = function(layersData) {	
	var text = "FlashApi.onLayersDataLoaded:\n";	
	for (var i = 0; i < layersData.length; i++) {
		var g = layersData[i];
		text += g.id + ": " + g.name + "\n";
		var layers = g.layers;
		for (var j = 0; j < layers.length; j++) {
			var l = layers[j];
			text += "\t" + l.id + "(" + l.name + "): checked " + l.checked + ", enabled " + l.enabled + 
				", type " + l.type + ", style " + l.style + "\n";
		}
	}	
	if (console) 
		console.log(text);

}

FlashApi.onFlashLoaded = function() {
	if (console) 
		console.log("flash loaded");
}

FlashApi.onMapParamsChanged = function(args) {
	var params = args.zoom + "," + args.min_e + "," + args.min_n + "," + args.max_e + "," + args.max_n + "," + args.center_e + "," + args.center_n;
	document.getElementById("map_params").value = params;
}

FlashApi.onError = function(error) {
	if (console) 
		console.log("____ " + error.code + " " + error.message);
}

FlashApi.onEditModeResponse = function(args) {
	switch (args.typeName) {
		case "POINT":
			document.getElementById("point_coords").value = args.geo[0].e + "," + args.geo[0].n;
			break;
		
		case "LINESTRING":
			var coords = new Array();
			for(var i = 0; i < args.geo.length; i++){
				coords.push(args.geo[i].e + "," + args.geo[i].n);
			}
			document.getElementById("line_coords").value = coords.join(";");
			break;

		case "POLYGON":
			var output = "[";
			var coords = new Array();
			for (var i = 0; i < args.geo.length; i++) {
				var ring = args.geo[i];
				for (var j = 0; j < ring.length; j++) {
					coords.push(ring[j].e + "," + ring[j].n);
				}
				output += "[" + coords.join(";") + "], ";
			}
			output = output.substring(0, output.length - 2) + "]";
			document.getElementById("area_coords").value = output;
			break;

		case "CIRCLE":
			document.getElementById("circle_coords").value = args.geo[0].e + "," + args.geo[0].n;
			document.getElementById("circle_radius").value = args.geo[0].r;
			break;
			
		case "ELLIPSE":
			document.getElementById("ellipse_coords").value = args.geo[0].e + "," + args.geo[0].n;
			document.getElementById("ellipse_a").value = args.geo[0].a;
			document.getElementById("ellipse_b").value = args.geo[0].b;
			document.getElementById("ellipse_angle").value = args.geo[0].angle;
			break;

		case "RECTANGLE":
			var coords = new Array();
			for (var i = 0; i < args.geo.length; i++){
				coords.push(args.geo[i].e + "," + args.geo[i].n);
			}
			
			if (args.geo.length == 1) {
				var text = "center point: (" + coords.join(";") + "), a = " + args.geo[0].a + ", b = " + args.geo[0].b + 
					", angle = " + args.geo[0].angle;
			} else {
				var text = coords.join(";");
			}
			document.getElementById("rectngl_coords").value = text;
			break;
	}
}

FlashApi.onOpenUrl = function(url) {
	var win = window.open(url, "_blank", "toolbar=yes, location=yes, directories=no, status=no, menubar=yes, scrollbars=yes, resizable=no, copyhistory=yes, width=400, height=400");
}

FlashApi.onPrintInfoReceived = function(args) {
/*

	//alert(args.lat + " " + args.lon + " " + args.min_e + " " + args.min_n + " " + args.max_e + " " + args.max_n + " " + args.zoom);
	//after receiving coordinates, goto printing page
	if (args.lids) {
		//alert('print.php?lat=' + args.lat + '&lon=' + args.lon + '&init_zoom=' + args.zoom + '&lids=' + args.lids + '&addUrls=' + args.addUrls);
		//window.open('print.php?lat=' + args.lat + '&lon=' + args.lon + '&init_zoom=' + args.zoom + '&lids=' + args.lids + '&addUrls=' + args.addUrls, 'Printing');
		window.location='print.php?n=' + args.n + '&e=' + args.e + '&init_zoom=' + args.zoom + '&lids=' + args.lids + '&addUrls=' + escape(args.addUrls);
	} else {
		//window.open('print.php?lat=' + args.lat + '&lon=' + args.lon + '&init_zoom=' + args.zoom, 'Printing');
		window.location='print.php?n=' + args.n + '&e=' + args.e + '&init_zoom=' + args.zoom;
	}
*/
}

FlashApi.onObjectOnMouseClicked = function(object) {
	if (console) 
		console.log("object " + object.objectId + " is clicked");
}

FlashApi.onMapClicked = function(coords) {
	if (console) 
		console.log("map clicked at " + coords.e + " " + coords.n);
}