//<![CDATA[

	//--------------------------------------------------//
	// Motor Cons v.00 API v.02 por Dhaufvir 26-04-2006 //
	//--------------------------------------------------//


//**************************************************************//
// Variables Globales											//
//**************************************************************//
// Variable Global para el mapa
var map;
var maptilelayer;
var Tyria;

var gmarkers = [];
var gmark_html = [];

// When the tab updated triggers, it doesnt tell us which marker it is associated with
// (info windows dont have a history of whether they came from a marker or from the map)
// but we need to know which set of info to use to rebuild the infowindow with the other tab active.
var tab_marker_num = 0;

//**************************************************************//
// Proceso														//
//**************************************************************//
function proceso(pvalor) {
    // Check to see if this browser can run the Google API
    if (GBrowserIsCompatible()) 
	{

	//**************************************************************//
	// Inicio del Proceso											//
	//**************************************************************//
	//GLog.write('Inicio del Proceso'); 

	//Busco Parámetros
	//GLog.write(pvalor);

	//Create a new GMap and load it to the html object id="map"      
	//var map = new GMap(document.getElementById('map'));
	map = new GMap2(document.getElementById('map'));

	maptilelayer = new GTileLayer(new GCopyrightCollection(''), 0, 17); 
	maptilelayer.isPng = function() { return false; }
	maptilelayer.getTileUrl = function(a,b) { 
		var c = (a.x + a.y) % this.baseUrls.length; 
		return this.baseUrls[c] + "x=" + a.x + "&y=" + a.y + "&zoom=" + b; 
	} 
	maptilelayer.getOpacity = function() { 
		return 1; 
	}
	// Set Path to Our Custom Map Image Tiles
	maptilelayer.baseUrls = new Array();
	maptilelayer.baseUrls[0] = "/Prophecies/php/ISS_03.php?";

	Tyria = new GMapType([maptilelayer],G_NORMAL_MAP.getProjection(),'map'); 
	Tyria.getErrorMessage = function() { return '' }
	Tyria.getName = function(a) { return a ? 'Tyria' : 'Tyria' }
	Tyria.getProjection = G_NORMAL_MAP.getProjection; 
	Tyria.getMinimumResolution = function() { return 9; }
	Tyria.getMaximumResolution = function() { return 12; }
	Tyria.getCopyright = function() { return 'GWMap por KGR'; }
	Tyria.getLinkColor = function() { return '#0000ff' }
	Tyria.getTextColor = function() { return '#000000' }
	
	Tyria.cmtl = new Array(); 
	Tyria.cmtl[0] = maptilelayer; 
	Tyria.getTileLayers = function() { return this.cmtl; }

	map.addMapType(Tyria); 

	//Control del Mapa
	map.addControl(new GSmallMapControl());
	//Posición y Zoom
	map.setCenter(new GLatLng(85.00790761635798,-177.56240844726562), 12);
	map.setMapType(Tyria);


	//**************************************************************//
	// Sección de Eventos											//
	//**************************************************************//
	// "Zoom Listener" para controlar el nivel de zoom permitido
	GEvent.addListener(map, "zoomend", function() {
		checkZoom();
	});

	//Busco Parámetros, si no hay mostramos info
	//------------------------------------------
	//GLog.write(pvalor);
	if (pvalor)
	{//GLog.write(pvalor);
		Opcion_Procesar('pvalor',pvalor,'Prophecies');
	} else 
		{// Cargo las News en el SideBar
		 news_cargar();
		}

	inicio();

}
    // display a warning if the browser was not compatible
    else {
      alert("Sorry, the Google Maps API is not compatible with this browser");
    };

};


//**************************************************************//
// Funciones													//
//**************************************************************//
// Función para crear un marcador en el mapa y configurar el globo de información
function Marcador_Crear(point,nombre,html) {
	// FireFox 1.5 fix
	// Para Evitar problemas con FireFox se debe incluir los parámetros en un DIV
	//var estructura = '<div style="white-space:nowrap;">' + html + '</div>';
//	var estructura = '<div style="font-size: 8px;">' + html + '</div>';
	var estructura = [new GInfoWindowTab('', '<div style="font-size: 8px;">' + html + '</div>')];

	// Inserto el Marcador
	var marcador = new GMarker(point, {title:nombre});
	gmarkers[tab_marker_num] = marcador;
	gmark_html[tab_marker_num] = estructura;
	
	//var i = tab_marker_num;     // store the marker_num with a function closure

	GEvent.addListener(marcador, "click", function()
		{
		//tab_marker_num = i;       // retrieve the marker_num
		//gmarkers[tab_marker_num].openInfoWindowHtml(estructura);
		marcador.openInfoWindowTabsHtml(estructura);
		//GLog.write('listener');
		});
	tab_marker_num++;
	return marcador;
};

// Función para crear un marcador con tabs en el mapa y configurar el globo de información
function Marcador_Tabs_Crear(point,nombre,html1,html2,label1,label2) {
	// FireFox 1.5 fix
	// Para Evitar problemas con FireFox se debe incluir los parámetros en un DIV
	// Monto la estructura con "Tabs"
	var estructura = [
	  new GInfoWindowTab(label1, '<div style="white-space:nowrap;">' + html1 + '</div>'),
	  new GInfoWindowTab(label2, '<div style="white-space:nowrap;">' + html2 + '</div>')
	];

	// Inserto el Marcador
	var marcador = new GMarker(point, {title:nombre});
	gmarkers[tab_marker_num] = marcador;
	gmark_html[tab_marker_num] = estructura;
	
	//var i = tab_marker_num;     // store the marker_num with a function closure
	
	GEvent.addListener(marcador, "click", function()
		{
		//tab_marker_num = i;       // retrieve the marker_num
		//gmarkers[tab_marker_num].openInfoWindowHtml(estructura);
		marcador.openInfoWindowTabsHtml(estructura);
		});
	tab_marker_num++;
	return marcador;
};

// Función que limita el nivel de Zoom que se puede aplicar
// En nuestro caso no más de Z6 y no menos de Z4
function checkZoom() {
	var ZoomActual = map.getZoom();
	if (ZoomActual < 9) { map.setZoom(9); }
//	if (ZoomActual == 10) { map.setZoom(12); }
//	if (ZoomActual == 11) { map.setZoom(9); }
	if (ZoomActual > 12) { map.setZoom(12); }
};

// Función que elimina un marcador. Se utiliza para eliminar marcadores temporales.
function marcbor(indx) {
	map.closeInfoWindow();
	map.removeOverlay(gmarkers[indx]);
};

// Función que recupera los valores de la base de datos y crea un XML
// que sea tratable. AJAX.
function Opcion_Procesar(velemento_id,vvalor_id,vcampanya_id) {
	var nombre_ant = "";
	var link_anterior = "";
	var opcion_valida = "";

	document.getElementById('sidebar').innerHTML = "Buscando ...";

	//GLog.write(velemento_id+" - "+vvalor_id+" - "+vcampanya_id);
	map.clearOverlays();

	opcion_valida = "s";

	// Fichero XML
	switch (velemento_id)
		{
		case 'colreg':
			region_centrar(vvalor_id);
			var ficheroxml = "/Prophecies/php/q_colreg_00.php?elemento_id=" + velemento_id + "&region_id=" + vvalor_id + "&campanya_id=" + vcampanya_id;
			break;
		case 'colmat':
			var ficheroxml = "/Prophecies/php/q_mat_00.php?material_id=" + vvalor_id + "&campanya_id=" + vcampanya_id;
			break;
		case 'colatr':
			var ficheroxml = "/Prophecies/php/q_colatr_00.php?elemento_id=" + velemento_id + "&atributo_id=" + vvalor_id + "&campanya_id=" + vcampanya_id;
			break;
		case 'colobj':
			var ficheroxml = "/Prophecies/php/q_colobj_00.php?elemento_id=" + velemento_id + "&objeto=" + vvalor_id + "&campanya_id=" + vcampanya_id;
			break;
		case 'habreg':
			region_centrar(vvalor_id);
			var ficheroxml = "/Prophecies/php/q_habreg_00.php?elemento_id=" + velemento_id + "&region_id=" + vvalor_id + "&campanya_id=" + vcampanya_id;
			break;
		case 'habzon':
			region_centrar(vvalor_id);
			var ficheroxml = "/Prophecies/php/q_habzon_00.php?elemento_id=" + velemento_id + "&zona_id=" + vvalor_id + "&campanya_id=" + vcampanya_id;
			break;
		case 'habatr':
			var ficheroxml = "/Prophecies/php/q_habatr_00.php?elemento_id=" + velemento_id + "&atributo_id=" + vvalor_id + "&campanya_id=" + vcampanya_id;
			break;
		case 'veratr':
			var ficheroxml = "/Prophecies/php/q_veratr_00.php?elemento_id=" + velemento_id + "&atributo_id=" + vvalor_id + "&campanya_id=" + vcampanya_id;
			break;
		case 'verzon':
			region_centrar(vvalor_id);
			var ficheroxml = "/Prophecies/php/q_verzon_00.php?elemento_id=" + velemento_id + "&zona_id=" + vvalor_id + "&campanya_id=" + vcampanya_id;
			break;
		case 'pvalor':
			var ficheroxml = "/Prophecies/php/q_pvalor_00.php?marcador_id=" + vvalor_id;
			break;
		default:
			opcion_valida = "n";
			break;
		}

	if (opcion_valida == "n")
	{ document.getElementById('sidebar').innerHTML = "Próximamente...";
	} else 
	  {
		//GLog.write(ficheroxml);
		var sidebar_links = "";

		// Obtener los datos del XML
		GDownloadUrl(ficheroxml, function(data, responseCode) {
		  var xml = GXml.parse(data);
		  var marcadores = xml.documentElement.getElementsByTagName("marker");
		  for (var i = 0; i < marcadores.length; i++) {
				// Recupero los datos que necesito
				var tiporow = marcadores[i].getAttribute("tiporow");

				switch (tiporow)
					{
					case 'info':
						if (sidebar_links != "")
						{sidebar_links += "<br><br>";
						}
						var titulo = marcadores[i].getAttribute("titulo"); 
						sidebar_links += "<font class='sidebar_titulo'>"+titulo+"</font>";
						break;
					case 'cont':
						var ele_id = marcadores[i].getAttribute("elemento_id");
						var tipo_marcador = marcadores[i].getAttribute("tipo_marcador");
						var nombre = marcadores[i].getAttribute("nombre"); 
						var lng = marcadores[i].getAttribute("lng");
						var lat = marcadores[i].getAttribute("lat");
						var texto = marcadores[i].getAttribute("texto");
						var texto2 = marcadores[i].getAttribute("texto2");
						var titulo1 = marcadores[i].getAttribute("titulo1");
						var titulo2 = marcadores[i].getAttribute("titulo2");
						var contador = marcadores[i].getAttribute("contador"); 
						if (contador == 1)
							{sidebar_links += '<br><a href="javascript:sidebar_click('+ "'" + tab_marker_num + "'" + ')">' + nombre + '</a>';
							 } else {sidebar_links += ', <a href="javascript:sidebar_click('+ "'" + tab_marker_num + "'" + ')">' + contador + '</a>';
							}
						if ((lng) & (lat))
							{
							 var point = new GLatLng(lat,lng);
							 if (titulo2)
							 {// Ahora selecciono qué etiqueta va primero
						 		 if (velemento_id.substr(0,3) == 'ver')
						 		 {var marker = Marcador_Tabs_Crear(point,nombre,texto2,texto,titulo2,titulo1);
						 		 } else {var marker = Marcador_Tabs_Crear(point,nombre,texto,texto2,titulo1,titulo2);
										}
							 } else {var marker = Marcador_Crear(point,nombre,texto);
									}
							 map.addOverlay(marker);
							}
						break;
					case 'atri':
						var ele_id = marcadores[i].getAttribute("elemento_id");
						var tipo_marcador = marcadores[i].getAttribute("tipo_marcador");
						var nombre = marcadores[i].getAttribute("nombre"); 
						var zona = marcadores[i].getAttribute("zona"); 
						var lng = marcadores[i].getAttribute("lng");
						var lat = marcadores[i].getAttribute("lat");
						var texto = marcadores[i].getAttribute("texto");
						var texto2 = marcadores[i].getAttribute("texto2");
						var titulo1 = marcadores[i].getAttribute("titulo1");
						var titulo2 = marcadores[i].getAttribute("titulo2");
						var contador = marcadores[i].getAttribute("contador"); 
						if (contador == 1)
							{sidebar_links += '<br><a href="javascript:sidebar_click('+ "'" + tab_marker_num + "'" + ')">' + zona + '</a>';
							} else {sidebar_links += ', <a href="javascript:sidebar_click('+ "'" + tab_marker_num + "'" + ')">' + contador + '</a>';
							}
						if ((lng) & (lat))
							{
							 var point = new GLatLng(lat,lng);
							 if (titulo2)
							 {// Ahora selecciono qué etiqueta va primero
						 		 if (velemento_id.substr(0,3) == 'ver')
						 		 {var marker = Marcador_Tabs_Crear(point,nombre,texto2,texto,titulo2,titulo1);
						 		 } else {var marker = Marcador_Tabs_Crear(point,nombre,texto,texto2,titulo1,titulo2);
										}
							 } else {var marker = Marcador_Crear(point,nombre,texto);
									}
							 map.addOverlay(marker);
							}
						break;
					case 'dato':
						var ele_id = marcadores[i].getAttribute("elemento_id");
						var tipo_marcador = marcadores[i].getAttribute("tipo_marcador");
						var nombre = marcadores[i].getAttribute("nombre"); 
						var lng = marcadores[i].getAttribute("lng");
						var lat = marcadores[i].getAttribute("lat");
						var texto = marcadores[i].getAttribute("texto");
						var texto2 = marcadores[i].getAttribute("texto2");
						var titulo1 = marcadores[i].getAttribute("titulo1");
						var titulo2 = marcadores[i].getAttribute("titulo2");
						sidebar_links += '<br><a href="javascript:sidebar_click('+ "'" + tab_marker_num + "'" + ')">' + nombre + '</a>';
						if ((lng) & (lat))
							{
							 var point = new GLatLng(lat,lng);
							 if (titulo2)
							 {// Ahora selecciono qué etiqueta va primero
						 		 if (velemento_id.substr(0,3) == 'ver')
						 		 {var marker = Marcador_Tabs_Crear(point,nombre,texto2,texto,titulo2,titulo1);
						 		 } else {var marker = Marcador_Tabs_Crear(point,nombre,texto,texto2,titulo1,titulo2);
										}
							 } else {var marker = Marcador_Crear(point,nombre,texto);
									}
							 map.addOverlay(marker);
							}
						break;
					default:
						break;
					}
		  }

		  if (sidebar_links == "")
		  {document.getElementById('sidebar').innerHTML = "No hay datos disponibles";
		  } else {document.getElementById('sidebar').innerHTML = sidebar_links;
				  if (velemento_id == 'pvalor')
				  {	sidebar_click(0);
				  }
				}
		});	// Fin * GDownloadUrl *

	}	// Fin * if (opcion_valida == "s") *

};

function sidebar_click(vind) {

	gmarkers[vind].openInfoWindowTabsHtml(gmark_html[vind]);

};

function no_operativo() {
	alert("Opción no disponible.");
}

function region_centrar(pregion_id) {
	// Fichero XML
	var ficheroxml = "/Prophecies/php/q_coordreg_00.php?region_id=" + pregion_id;

	// Obtener los datos del XML
	GDownloadUrl(ficheroxml, function(data, responseCode) {
	  var xml = GXml.parse(data);
	  var locations = xml.documentElement.getElementsByTagName("region");
	  for (var i = 0; i < locations.length; i++) {
			// Recupero los datos que necesito
			var lng = locations[i].getAttribute("lng");
			var lat = locations[i].getAttribute("lat");
	  }
		if ((lat) & (lng)) {
			var point = new GLatLng(lat,lng);
			map.panTo(point);
		}
	});

}

function news_cargar() {
	// Obtener los datos de las News
	var ficheroxml = "/Prophecies/php/q_news_00.php";
	GDownloadUrl(ficheroxml, function(data, responseCode) {
	  document.getElementById('sidebar').innerHTML = data;
	});	// Fin * GDownloadUrl *
}

//]]>

