/******************************************************************************
 *****************************************************************************/

var myKaMap = myKaNavigator = myKaQuery = null;
function myOnLoad(){
    initDHTMLAPI();

    myKaMap = new kaMap( 'viewport' );

//  Hacemos que al cargar la página se posicione en el radio 1 de Topografia/Ortofoto
	document.getElementById('r0').click();
//  Hacemos que la lista de municipios se posicione en el primer elmento
	document.fMuni.municipios.selectedIndex = 0;

//	Esta inicialización nos lleva a un punto en concreto
//     myKaMap.initialize(null,"600000,4670000,610000,4700000");

//    document.getElementById("dWin").src = "blank.html";
    initialiseGetData();

    var myKaScalebar = new kaScalebar( myKaMap, 'scalebar' );
    var myKaLegend = new kaLegend( myKaMap, 'legend', false );
    var myKaKeymap = new kaKeymap( myKaMap, 'keymap' );

    myKaMap.registerForEvent( KAMAP_QUERY, null, myQuery );

    myKaNavigator = new kaNavigator( myKaMap );
    myKaNavigator.activate();

//  Extra para hacer las consultas automaticamente
    myKaNavigator.setAutoQuery(1,myQuery);

//    myKaQuery = new kaQuery( myKaMap, KAMAP_RECT_QUERY );
    myKaQuery = new kaQuery( myKaMap, KAMAP_POINT_QUERY );

    drawPage();

    //Look for map params in the URL before initialize
    var szURL = document.URL;
    if (szURL.indexOf("?") != -1) {
        myParams=szURL.slice(1+szURL.indexOf("?")).split("&");
        myMap= (myParams[0])? myParams[0].slice(1+myParams[0].indexOf("=")) : '';
        myExtents= (myParams[1])? myParams[1].slice(1+myParams[1].indexOf("=")): '';
        myCenterPoint= (myParams[2])? myParams[2].slice(1+myParams[2].indexOf("=")): '';
		inicializaControles(myMap);
    } else {
        myKaMap.initialize();
    }
}

//function myInitialized(){
//}

/**
 * called when kaMap tells us the scale has changed
 */
function myScaleChanged( eventID, scale ){
    //todo: update scale select and enable/disable zoomin/zoomout
    var oSelect = document.forms[0].scales;
    for (var i=0; i<oSelect.options.length; i++)
    {
        if (oSelect.options[i].value == scale)
        {
            oSelect.options[i].selected = true;
            document.forms[0].zoomout.disabled = (i==0);
            document.forms[0].zoomin.disabled = (i==oSelect.options.length - 1);
        }
    }
}

function mySetScale( scale ){
    myKaMap.zoomToScale( scale );
}

function mySetMap( name ){
	document.getElementById("dWin").src = "resultados_vacio.html";
    myKaMap.selectMap( name );
}

function myQuery( eventID, queryType, coords ){
    var szLayers = '';
    var layers = myKaMap.getCurrentMap().getQueryableLayers();
	var consulta = '';
	var comma = ',';
	var coordenadas = new Array();
	var cadenaCoords = "";
	var coordX = 0;
	var coordY = 0;
	var currentMap = myKaMap.getCurrentMap();

//	alert(currentMap.name);

//  Para consultas multiples
//    for (var i=0;i<layers.length;i++)
//    {
//        szLayers = szLayers + "," + layers[i].name;
//    }
//

// Para consultas de 1 elemento
	if (queryType == 0)
	{

// En lugar de indicar las szLayers, cogemos las primera de las layers queryables
//		szLayers = "Cuadricula";

		cadenaCoords = String(coords);
		coordenadas = cadenaCoords.split(comma);

// Si es temático hacemos que vaya a otra página de resulados especial para los temáticos
// Si no, va a la página de resutlados genérica
		mapa = currentMap.name.substr(0,9);
		switch (mapa)
		{
			case "RIOJA_CAR":
				consulta = "resultados_2000.php?layer=" + layers[0].name + "&x=" + coordenadas[0] + "&y=" + coordenadas[1] + "&map=" + currentMap.name;
				break;
			case "RIOJA_C04":
				consulta = "resultados_car_2004.php?layer=" + layers[0].name + "&x=" + coordenadas[0] + "&y=" + coordenadas[1] + "&map=" + currentMap.name;
				break;
			case "ORTO_2000":
				consulta = "resultados_orto_2000.php?layer=" + layers[0].name + "&x=" + coordenadas[0] + "&y=" + coordenadas[1] + "&map=" + currentMap.name;
				break;
			case "ORTO_2004":
				consulta = "resultados_orto_2004.php?layer=" + layers[0].name + "&x=" + coordenadas[0] + "&y=" + coordenadas[1] + "&map=" + currentMap.name;
				break;
			case "CIR_2006":
				consulta = "resultados_cir_2006.php?layer=" + layers[0].name + "&x=" + coordenadas[0] + "&y=" + coordenadas[1] + "&map=" + currentMap.name;
				break;
			case "ORTO_2006":
				consulta = "resultados_orto_2006.php?layer=" + layers[0].name + "&x=" + coordenadas[0] + "&y=" + coordenadas[1] + "&map=" + currentMap.name;
				break;
			case "CIR_2009":
				consulta = "resultados_cir_2009.php?layer=" + layers[0].name + "&x=" + coordenadas[0] + "&y=" + coordenadas[1] + "&map=" + currentMap.name;
				break;
			case "ORTO_2009":
				consulta = "resultados_orto_2009.php?layer=" + layers[0].name + "&x=" + coordenadas[0] + "&y=" + coordenadas[1] + "&map=" + currentMap.name;
				break;
			case "RIOJA_REL":
				consulta = "resultados_relieve_1989.php?layer=" + layers[0].name + "&x=" + coordenadas[0] + "&y=" + coordenadas[1] + "&map=" + currentMap.name;
				break;
			case "RIOJA_TEM":
				if (layers[1]) //<!-- Hay Cartografía temática (+ de una capa) -->
					consulta = "resultados_tematico.php?layer=" + layers[0].name + "," + layers[1].name + "&x=" + coordenadas[0] + "&y=" + coordenadas[1] + "&map=" + currentMap.name;
				else  // Solo hay una capa
					consulta = "resultados_tematico.php?layer=" + layers[0].name + "&x=" + coordenadas[0] + "&y=" + coordenadas[1] + "&map=" + currentMap.name;
				break;
			case "RIOJA_URB":
				consulta = "resultados_urbana.php?layer=" + layers[0].name + "&x=" + coordenadas[0] + "&y=" + coordenadas[1] + "&map=" + currentMap.name;
				break;
			default:
				break;
		}
    	document.getElementById("dWin").src = consulta;
	}
}

function myZoomIn(){
    myKaMap.zoomIn();
}

function myZoomOut(){
    myKaMap.zoomOut();
}

function myZoomToScale(scale){
	myKaMap.zoomToScale(scale);
}

function drawPage(){
    var viewport = getRawObject('viewport');
    viewport.style.width = "520px";
    viewport.style.height = "370px";

    myKaMap.resize();
}

// Funcion para mover el mapa con las flechas

function moveMap(dir){

nStep = 16;

        switch(dir)
        {
          case 0://north
            myKaMap.moveBy(0,nStep);
            myKaMap.triggerEvent( KAMAP_EXTENTS_CHANGED, myKaMap.getGeoExtents() );
            break;
          case 3: //south
            myKaMap.moveBy(0,-nStep);
            myKaMap.triggerEvent( KAMAP_EXTENTS_CHANGED, myKaMap.getGeoExtents() );
            break;
          case 1: //east
            myKaMap.moveBy(nStep,0);
            myKaMap.triggerEvent( KAMAP_EXTENTS_CHANGED, myKaMap.getGeoExtents() );
            break;
          case 2: //west
            myKaMap.moveBy(-nStep,0);
            myKaMap.triggerEvent( KAMAP_EXTENTS_CHANGED, myKaMap.getGeoExtents() );
            break;
         }
}

function initialiseGetData() //safalra
{
    GET_DATA=new Array();
    var getDataString=new String(window.location);
    var questionMarkLocation=getDataString.search(/\?/);
    if (questionMarkLocation!=-1)
    {
      getDataString=getDataString.substr(questionMarkLocation+1);
      var getDataArray=getDataString.split(/&/g);
      for (var i=0;i<getDataArray.length;i++)
      {
        var nameValuePair=getDataArray[i].split(/=/);
        GET_DATA[unescape(nameValuePair[0])]=unescape(nameValuePair[1]);
      }
    }
}

function verMunicipio(xye){
	var x;
	var y;
	var e;
	var cadena = xye.split(",");

	x = cadena[0];
	y = cadena[1];
	e = cadena[2];

	if (x == 0){
		return;
	}

	myKaMap.zoomTo(x,y,e);
}

function cargaMunicipio(){

//  Hacemos que la lista de municipios se posicione en el primer elmento
	document.fMuni.municipios.selectedIndex = 0;

// Seleccionamos el mapa - RIOJA_URBANA
	mySetMap('RIOJA_URBANA');

//  Llevamos el mapa a la zona del municipio
	verMunicipio(document.f_sel_mapa.maps2[document.f_sel_mapa.maps2.selectedIndex].value);

//  Hacemos la consulta del municipio igual que si pinchamos sobre él
	myQuery(KAMAP_QUERY,0,document.f_sel_mapa.maps2[document.f_sel_mapa.maps2.selectedIndex].value);
}

function cargaTopoOrto(){

//  Hacemos que la lista de municipios se posicione en el primer elmento
	document.fMuni.municipios.selectedIndex = 0;

// Seleccionamos el mapa - RIOJA_TEM_?
	mySetMap(document.f_sel_mapa.maps0[document.f_sel_mapa.maps0.selectedIndex].value);
}

function cargaTematico(){

	//  Hacemos que la lista de municipios se posicione en el primer elmento
	document.fMuni.municipios.selectedIndex = 0;

// Seleccionamos el mapa - RIOJA_TEM_?
	mySetMap(document.f_sel_mapa.maps1[document.f_sel_mapa.maps1.selectedIndex].value);

	var centroPX = myKaMap.getCenter();
	var centroGEO = myKaMap.pixToGeo(centroPX[0],centroPX[1]);

	centroGEO[0] = centroGEO[0] * -1;
	centroGEO[1] = centroGEO[1] * -1;

//  Hacemos la consulta del tematico que si pinchamos sobre él
	myQuery(KAMAP_QUERY,0,centroGEO);
}

function verCombo(the_array_name){

//  Hacemos que la lista de municipios se posicione en el primer elmento
	document.fMuni.municipios.selectedIndex = 0;

//  Bajamos los combos al nivel 0 de visibilidad
	document.getElementById("combo0").style.zIndex = 0;
	document.getElementById("combo1").style.zIndex = 1;
	document.getElementById("combo2").style.zIndex = 2;

// Hacemos que los combos se posicionen en el primer elemento
	document.f_sel_mapa.maps0.selectedIndex = 3; // CARTO - 2004
	document.f_sel_mapa.maps1.selectedIndex = 0;
	document.f_sel_mapa.maps2.selectedIndex = 0;

//  Mostramos el combo que nos interesa
	document.getElementById(the_array_name).style.zIndex = 999;

	switch (the_array_name)
	{
		case 'combo0':
			mySetMap('RIOJA_C04');
			break;
		case 'combo1':
			mySetMap('RIOJA_TEMATICA');
			break;
		case 'combo2':
			mySetMap('RIOJA_URBANA');
			break;
	}
}

function inicializaControles(myMap){

//  Bajamos los combos al nivel 0 de visibilidad
	document.getElementById("combo0").style.zIndex = 0;
	document.getElementById("combo1").style.zIndex = 1;
	document.getElementById("combo2").style.zIndex = 2;

	document.getElementById("r0").checked = false;
	document.getElementById("r1").checked = false;
	document.getElementById("r2").checked = false;

	var Mapa9 = myMap.toString();
	Mapa9 = Mapa9.substr(0,9);

	switch(Mapa9)
    {
    	case 'RIOJA_CAR':
			document.getElementById("r0").checked = true;
			document.getElementById("combo0").style.zIndex = 999;
			document.f_sel_mapa.maps0.selectedIndex = 2;
	        myKaMap.initialize(myMap,myExtents,myCenterPoint);
			break;
    	case 'RIOJA_C04':
			document.getElementById("r0").checked = true;
			document.getElementById("combo0").style.zIndex = 999;
			document.f_sel_mapa.maps0.selectedIndex = 3;
	        myKaMap.initialize(myMap,myExtents,myCenterPoint);
			break;
    	case 'ORTO_2000':
			document.getElementById("r0").checked = true;
			document.getElementById("combo0").style.zIndex = 999;
			document.f_sel_mapa.maps0.selectedIndex = 5;
		    myKaMap.initialize(myMap,myExtents,myCenterPoint);
			break;				
    	case 'ORTO_2004':
			document.getElementById("r0").checked = true;
			document.getElementById("combo0").style.zIndex = 999;
			document.f_sel_mapa.maps0.selectedIndex = 6;
		    myKaMap.initialize(myMap,myExtents,myCenterPoint);
			break;			
    	case 'CIR_2006':
			document.getElementById("r0").checked = true;
			document.getElementById("combo0").style.zIndex = 999;
			document.f_sel_mapa.maps0.selectedIndex = 7;
		    myKaMap.initialize(myMap,myExtents,myCenterPoint);
			break;
    	case 'ORTO_2006':
			document.getElementById("r0").checked = true;
			document.getElementById("combo0").style.zIndex = 999;
			document.f_sel_mapa.maps0.selectedIndex = 8;
		    myKaMap.initialize(myMap,myExtents,myCenterPoint);
			break;
		case 'CIR_2009':
			document.getElementById("r0").checked = true;
			document.getElementById("combo0").style.zIndex = 999;
			document.f_sel_mapa.maps0.selectedIndex = 9;
		    myKaMap.initialize(myMap,myExtents,myCenterPoint);
			break;
    	case 'ORTO_2009':
			document.getElementById("r0").checked = true;
			document.getElementById("combo0").style.zIndex = 999;
			document.f_sel_mapa.maps0.selectedIndex = 10;
		    myKaMap.initialize(myMap,myExtents,myCenterPoint);
			break;
		case 'RIOJA_REL':
			document.getElementById("r0").checked = true;
			document.getElementById("combo0").style.zIndex = 999;
			document.f_sel_mapa.maps0.selectedIndex = 4;
		    myKaMap.initialize(myMap,myExtents,myCenterPoint);
			break;
		case 'RIOJA_URB':
			document.getElementById("r2").checked = true;
			document.getElementById("combo2").style.zIndex = 999;
			document.f_sel_mapa.maps0.selectedIndex = 0;
	        myKaMap.initialize(myMap,myExtents,myCenterPoint);
			break;
		case 'RIOJA_TEM':
			document.getElementById("r1").checked = true;
			document.getElementById("combo1").style.zIndex = 999;
			document.f_sel_mapa.maps0.selectedIndex = 0;
			myKaMap.initialize(myMap,myExtents,myCenterPoint);
			break;
		default:
			document.getElementById("r0").checked = true;
			document.getElementById("combo0").style.zIndex = 999;
			document.f_sel_mapa.maps0.selectedIndex = 3;

			//  Hacemos que la lista de municipios se posicione en el primer elmento
			document.fMuni.municipios.selectedIndex = 0;

	        myKaMap.initialize(myMap,myExtents,myCenterPoint);
			break;
		}
}

function abrirFichero(nomFichero, titulo, w, h){

	switch(screen.width){
		case 800:
			if (w > 600){
				w = 600;
				h = 400;
			}
			break;
		case 1024:
			if (w > 800){
				w = 800;
				h = 600;
			}
			break;
		case 1280:
			if (w > 1024){
				w = 1024;
				h = 768;
			}
			break;
	}

    var winl = (screen.width - w) / 2;
    var wint = (screen.height - h) / 2;

    winprops = 'height='+h+',width='+w+',top='+wint+',left='+winl+'toolbar=no,directories=no,menubar=no,status=no,scrollbars=yes,resizable=yes';

	window.open(nomFichero, titulo, winprops);

//	window.open(nomFichero, 'Fichero', 'toolbar=no,directories=no,menubar=no,status=no,scrollbars=yes,resizable=yes');
}

