// JavaScript Document
//Antes de inicar con el visor del mapa cambiar el tama�o del div del mapa seg�n resoluci�n
if(screen.width > 1024)
	document.getElementById('divMap').style.width = (screen.width-500)+"px";
if(screen.height > 768)
	document.getElementById('divMap').style.height= (screen.height-320)+"px";
//Extent
iXmin = 664986; 
iYmin = 9881628; 
iXmax = 677315;
sCgi = 'cgimiq.php';
//sCapas = 'parroquias rio islas calles poligonos';
sCapas = 'PARROQUIAS RIO ISLAS CALLES';
sArchMapa = '/home/mapdata/miq/miq.map';
sArchMapaRefe = '/home/mapdata/miq/miqref.map';

var iNumPuntos=0;
var oPunto1 = null;
var oPunto2 = null;
var argR= "";//argumentos de la ruta
var argT= ""; //argumentos de transporte

	/***Mapa (principal)***/
	oMapa = new msMap(document.getElementById('divMap'), 'standardUp');
	oMapa.setCgi(sCgi);
	oMapa.setFullExtent(iXmin, iXmax, iYmin);
	oMapa.setMapFile(sArchMapa);
	//oMapa.debug();
	
	/***Herramientas adicionales del mapa***/
	//1. herramienta Identificar
	var hIdentificar = new msTool('IDENTIFICAR: Seleccione una capa y haga clic en el objeto que desea conocer.', clicIdentificar, '/miq/img/identificar.png', identificarSitio);
	oMapa.getToolbar(0).addMapTool(hIdentificar);
	//2. herramienta Localizaci�n de red
	var hPunto = new msTool('LOCALIZACION DE RED: Haga clic para agregar un punto.', clicPunto, '/miq/img/punto.png', agregarLocalizacion);
	oMapa.getToolbar(0).addMapTool(hPunto);
	//3. herramienta Restaurar mapa
	var hRestaurar = new msTool('RESTAURAR MAPA', restaurar, '/miq/img/restaurar.png', null);
	oMapa.getToolbar(0).addMapTool(hRestaurar);
	//4. herramienta Imprimir
	var hImprimir = new msTool('IMPRIMIR', imprimir, '/miq/img/imprimir.png', null);
	oMapa.getToolbar(0).addMapTool(hImprimir);
	//-->delito
	//5. Herramienta para agregar puntos de delitos
	var hDelito = new msTool('REGISTRAR DELITO: Haga clic en el mapa en el lugar que se produjo el delito e introduzca los datos requeridos.', clicAgregarDelito, '/miq/img/delito.png', agregarDelito);
	oMapa.getToolbar(0).addMapTool(hDelito);
	//<--delito
	
	/***Mapa de referencia***/
	oMapaRefe = new msMap(document.getElementById('divRef'));
	oMapaRefe.setCgi(sCgi);
	oMapaRefe.setFullExtent(iXmin, iXmax, iYmin);
	oMapaRefe.setMapFile(sArchMapaRefe);
	oMapaRefe.setActionNone();
	oMapaRefe.setLayers('parroquias');
	oMapaRefe.redraw();

	oMapa.setReferenceMap(oMapaRefe);
	
	oMapa.setDivResultsMeasure(document.getElementById('divResultados'));
	//oMapa.setColorMeasure('#00FF00');
	
	actualizarCapas();		 
	//++oMapa.redraw();
//++	oMapaRefe.redraw();

//-------------------------------------------------//
/****  Herramientas: implementaci�n ***/
//2. Identificar
function clicIdentificar(e, map) { map.getTagMap().style.cursor = "help"; }
function identificarSitio(event, map, x, y, xx, yy)
{
	xx = Math.round(xx);
	yy = Math.round(yy);
	
	sCapa = obtenerRadActivo(document.forms[0].radActiva);
	if(sCapa!="")
	{
		//document.getElementById("divResultados").innerHTML="";
		//obtenerInfo("cgimiq.php?op=1&map="+sArchMapa+"&lyr="+sCapa+"&x="+xx+"&y="+yy, "divResultados", "divLoading");
		winSitio = window.open('sitio.php?op=1&map='+sArchMapa+'&lyr='+sCapa+'&x='+xx+'&y='+yy, 'detallessitio', 'scrollbars=yes,resizable=yes,height=400,width=350,left=0,top=0'); 
		winSitio.focus();
	}
	else
		alert("Debe seleccionar una capa.");
}

//2. Ubicaci�n de red
function clicPunto(e, map) { map.getTagMap().style.cursor = "default"; }
function agregarLocalizacion(event, map, x, y, xx, yy)
{
  xx = Math.round(xx);
  yy = Math.round(yy);

  switch(iNumPuntos)
  {
		case 0:
			oPunto1 = new pointOverlay( new msIcon('/miq/img/punto1.png', '', 10, 20), null, 'Origen', xx, yy,
                            new Array('X', 'Y'), new Array(xx, yy) );
  		map.addPointOverlay(oPunto1);
			break;

		case 1:
  		oPunto2 = new pointOverlay( new msIcon('/miq/img/punto2.png', '', 10, 20), null, 'Destino', xx, yy,
                            new Array('X', 'Y'), new Array(xx, yy) );
  		map.addPointOverlay(oPunto2);
  		break;

		default:
    	map.removeOverlayPoints();  // Quitar los puntos
			oPunto1 = null;	oPunto2 = null;
    	iNumPuntos=-1;
	}
	iNumPuntos++;
}


//3. Restaurar mapa
function restaurar(e, map) 
{
	map.setFullExtent(iXmin, iXmax, iYmin);
	
	//Quitar los puntos
 	map.removeOverlayPoints();  
	oPunto1 = null;	Point2 = null;
	iNumPuntos=-1;
	
	//Quitar los argumentos
	map.setArgs('');
	argR="";
	argT="";
		
	map.redraw();
}

//4. Imprimir el mapa
function imprimir(e, map) 
{ 
	winImprimir=window.open(map.get_map_url()+'&op=3','imprimir', 'scrollbars=yes,resizable=yes,height=720,width=800,left=0,top=0');
	winImprimir.focus();
}

//-->delito
//5. Delitos
function clicAgregarDelito(e, map) { map.getTagMap().style.cursor = "default"; }
function agregarDelito(event, map, x, y, xx, yy)
{
	xx = Math.round(xx);
	yy = Math.round(yy);
	map.removeOverlayPoints();
	oPuntoDelito = new pointOverlay( new msIcon('/miq/img/puntodelito.png', '', 17, 44), null, 'Lugar del delito', xx, yy,
                            new Array('X', 'Y'), new Array(xx, yy) );
	map.addPointOverlay(oPuntoDelito);
	
	winDelito = window.open('ingresardelito.php?x='+xx+'&y='+yy, 'delito', 'scrollbars=yes,resizable=no,height=380,width=440,left=0,top=0'); 
	winDelito.focus();
}
//<--delito
//-------------------------------------------------//
//Mostrar/ocultar las capas
function actualizarCapas(e)
{
	var sLista = "RIO ISLAS ";//inicializar con las siempre visibles
	tagLista = document.forms[0].chkCapa;
	for(i=0; i < tagLista.length; i++)
	{
		if (tagLista[i].checked) 
		 sLista = sLista + tagLista[i].value + " "; 
	}
	oMapa.setLayers(sLista);
	oMapa.redraw();
}

//-------------------------------------------------//
/*** Opciones ***/
//1. Dibujar ruta entre puntos
function dibujarRuta()
{
	if(iNumPuntos!=2)
  {
    alert('Primero debe indicar DOS puntos (LOCALIZACION DE RED) en el mapa para encontrar la ruta.');
    return;
  }
	tipoRuta = obtenerRadActivo(document.forms[0].radTipoRuta);
	argR ='id='+tipoRuta+'&cx1='+oPunto1.getX()+'&cy1='+oPunto1.getY()+'&cx2='+oPunto2.getX()+'&cy2='+oPunto2.getY();
  oMapa.setArgs(argR+'&'+argT);
  oMapa.redraw();
}

//2. Buscar sitio
function ubicarSitio(sCbo)
{
	//document.forms[0].chkLayer[0].checked= true;
	punto= document.getElementById(sCbo).value.split(' ');
	desp=75;
	if(punto[0] && punto[1])
	{
		x1=Math.round(punto[0])-desp; x2= Math.round(punto[0])+desp; y1= Math.round(punto[1])-desp; y2= Math.round(punto[1])+desp;
		//oMapa.setExtent2(x1, x2, y1, y2);
		oMapa.setExtent(x1, x2, y1);
		//chgLayers();	
		oMapa.redraw();
		
/*		var sCapa='alojamiento';
		winSitio = window.open('sitio.php?op=1&map='+sArchMapa+'&lyr='+sCapa+'&x='+punto[0]+'&y='+punto[1], 'detallessitio', 'scrollbars=yes,resizable=yes,height=350,width=350,left=0,top=0'); 
		winSitio.focus();*/
	}
}

//3. Buscar intersección de calles
function ubicarInterseccion(sCalle1, sCalle2, sDivInter)
{
	//Cambio: eliminar los points overlay y dejar (si existen) los puntos de ruta 12/2009
	oMapa.removeOverlayPoints();
	if(iNumPuntos>=1)
	{
		oMapa.addPointOverlay(oPunto1);
		if(iNumPuntos==2)
			oMapa.addPointOverlay(oPunto2);
	}
	//cambio 12/2009
	
	coords="";
	if(sCalle1 && sCalle2)	
	{
		if(sCalle1 == sCalle2)
		{
			alert("Seleccione calles diferentes.");
			return;
		}
		document.getElementById(sDivInter).innerHTML="";
		obtenerInfo('cgimiq.php?op=2&c1='+sCalle1+'&c2='+sCalle2, sDivInter, "");

		alert("Buscando "+sCalle1+" y "+sCalle2+".  Clic para continuar.");
		coords= document.getElementById(sDivInter).innerHTML.split('|');

		/*if(coords.length==4)
		{
			x1=Math.round(coords[0]);x2= Math.round(coords[1]);
			y1= Math.round(coords[2]);y2= Math.round(coords[3]);
			oMapa.setExtent2(x1, x2, y1, y2);
			//oMapa.setExtent(x1, x2, y1);
			oMapa.redraw();
		}*/
		var iBox=100;
		if(coords.length==2)
		{
			x1=Math.round(coords[0])-iBox; x2= Math.round(coords[0])+iBox;
			y1= Math.round(coords[1])-iBox;y2= Math.round(coords[1]+iBox);
			//oMapa.setExtent2(x1, x2, y1, y2);
			oMapa.setExtent(x1, x2, y1);

			oInterseccion = new pointOverlay( new msIcon('/miq/img/intersection.png', '', 0, 0), null, 'INTERSECCION', coords[0], coords[1],
                            new Array('C1', 'C2'), new Array(sCalle1, sCalle2) );
  		oMapa.addPointOverlay(oInterseccion);

			oMapa.redraw();
		}
		else
		{
			alert("No fue posible localizar.");
		}
	}
}

//4. Recorrido de buses urbanos
function mostrarRecorridoBus(sLinea)
{
	if(sLinea)
	{
		argT = 'trans='+sLinea;
		//oMap.setArgs(arg);
		oMapa.setArgs(argR+'&'+argT);
		//setParam();
		oMapa.redraw();
	}
}

function buscarSitiosCercanos(subcategoria, cantidad)
{
	if(iNumPuntos!=1)
  {
    alert('Primero debe indicar UN punto (LOCALIZACION DE RED) correspondiente al lugar deseado.');
    return;
  }
	if(subcategoria=="")
	{
		alert('Primero debe seleccionar una Categoria y una Subcategoria.');	
		return;
	}
	obtenerInfo('sitioscercanos.php?x='+oPunto1.getX()+'&y='+oPunto1.getY()+'&idsc='+subcategoria+'&cant='+cantidad, 'divResultados', 'divLoading');	
}
/*function setParam()
{
	arg="";
	linea= document.getElementById('cboLinTra').value;
	if(numpoint==2)
		arg='id=1'+'&cx1='+oPunto1.getX()+'&cy1='+oPunto1.getY()+'&cx2='+oPunto2.getX()+'&cy2='+oPunto2.getY()+'&trans='+linea;
	else
		arg = arg+'trans='+linea;

  oMap.setArgs(arg);
}*/

/***Retorna el valor del radio button seleccionado.  Recibe el objeto radio button***/
function obtenerRadActivo(oRad)
{
	for(i=0; i<oRad.length; i++)
		if(oRad[i].checked)	
			return oRad[i].value;
	return "";
}

/*** Recuperar informaci�n v�a ajax ***/
function obtenerInfo(url, sDivContenido, sDivCargar) 
{
	if(sDivCargar)document.getElementById(sDivCargar).style.display='block';
	
	var oXHR = zXmlHttp.createRequest();
	oXHR.open("get", url, true);
	oXHR.onreadystatechange = function () 
	{
		if (oXHR.readyState == 4) 
		{
			if (oXHR.status == 200 || oXHR.status == 304) 
				document.getElementById(sDivContenido).innerHTML= oXHR.responseText;
			else 
				document.getElementById(sDivContenido).innerHTML= "Error: " + oXHR.statusText;

			if(sDivCargar)document.getElementById(sDivCargar).style.display='none';
		}            
	};
	oXHR.send(null);
}


//-->12/2009
var ventanaModal = null;
function abrirVentanaModal(sUrl, sTitulo, sArgs)
{
	ventanaModal = window.open(sUrl, "_blank", sArgs);
}
function controlVentanaModal() 
{
    if (ventanaModal == null) 
		{
        return;
    } 
		else if (!ventanaModal.closed) 
		{
        ventanaModal.focus();
    }
}
//window.onfocus = controlVentanaModal;
//12/09<--
