﻿
var idUsuario=null;
var TipoUsuario=null;
var LocUsuario=null;
var idEmpresaUsuario=null;
var map;
var menuMapa;
var comboCapitulo;
var comboPresentacion;
var comboUnidades;
var comboPeriodicidad;
//var menuResiduo;
var menuCrearCentro;
var condicion='';
var coleccionMarcas= new Collec();
var idioma;
var comboTipo;
var buscar=false;
var rutas=false;
var polig=false;


function Collec()
	{
	function Estructura(id,objeto){
						this.Id=id;
						this.Objeto=objeto;
						}
	this.Items= new Array();
	var tam = 0;
	this.length = tam;
	this.Agregar=function(pId,pObejto){
					//Agrega un elemento a la colección.
					var struct= new Estructura(pId,pObejto);
					this.Items[tam]=struct;
					tam = tam + 1;
					this.length= tam;
					}
	this.Devuelve=function(id){
					// Devuelve el elemento id
					for (var i = 0; i < tam; i++)
						{
						if (this.Items[i]!=null)
							{
								if (id==this.Items[i].Id) 
									{
									return  this.Items[i].Objeto;
									}
							}
						}
					return null;
					}
	this.Quitar=function(id){
				//Elimina de la colección el elemento id
				for (var i = 0; i < tam; i++)
						{
						if (this.Items[i]!=null)
							{
								if (id==this.Items[i].Id) 
									{
									this.Items[i]=null;
									ReEscructurar(i,this.Items,tam);
									tam=tam-1;
									this.length = tam;
									break;
									}
								}
							}
				}
	function ReEscructurar(indice,items,len)
		{//Reordena la colección
		// Mete el último elemento de la colección en la posicion de indice,
		// si indice no es el último
		if (indice < len-1)
			{
			items[indice]=items[len-1];
			}
		}
	}
// Objeto que contiene un google.maps.marker, varios google.maps.infowindow y diversas propiedades y métodos 
function LocMarca(pIdmarca,pUsuario,pEmpresa,pLatLng,pMap,pTitle,pImage,pEditar,pVntInfo,pVntMenu,pVntAR,pTipo,pImageMark) {
       var marca=new google.maps.Marker
			  		  ({
					  position: pLatLng, 
					  map: pMap,
					  title: pTitle,
					  icon: pImage
					  });
		
		var lMapa=pMap;// Mapa al que la marca está vinculado
		var lImagen=pImage;//Imagen principal
		var pTipoMenu=0;//Tipo de menu que se muestra al pinchar sobre la marca con botón derecho e izquierdo.
		var lImagenMarcado=pImageMark;//Imagen cuando la marca está marcada
		var AlFrente=false;//Indica si las ventanas están en primer plano
		var lMarcado=false;//Indica si la marca está marcada
		this.Marcado=function(){return lMarcado;}//Método que devuelve si está marcado
		this.Marcar=function(boolMarcar){lMarcado=boolMarcar;}//Método para marcar y desmarcar.
		this.MenuDerecho=function(TipoMenu){pTipoMenu=TipoMenu;};//Cambia el tipo de menú.
		this.Imagen=lImagen;
		this.mapa=lMapa;
		this.idMarca=pIdmarca;//Identificador de la marca
		this.Punto=pLatLng;//Latitud y Longitud de la marca dentro del mapa
		this.idUsario=pUsuario;//Usuario que crea la marca
		this.idEmpresaUsuario=pEmpresa;//Empresa que crea la marca
		this.editar=pEditar;//Indica si se permite el boton derecho.
		this.tipo=pTipo;// Tipo de centro de la marca
		this.MenuAlFrente=function(){
							//Posiciona todas las ventana de la marca al frente
							if (AlFrente==false)
								{
								ventanaMenu.setZIndex(1);
								ventanaAgregarResiduo.setZIndex(1);
								ventanaVerResiduo.setZIndex(1);
								ventanaMenuRuta.setZIndex(1);
								ventanaInfo.setZIndex(1);
								AlFrente=true;
								}
							}
		this.MenuAtras=function(){
								if (AlFrente==true)
								{
								//Envia todas las ventana de la marca atrás
								ventanaMenu.setZIndex(0);
								ventanaAgregarResiduo.setZIndex(0);
								ventanaVerResiduo.setZIndex(0);
								ventanaMenuRuta.setZIndex(0);
								ventanaInfo.setZIndex(0);
								AlFrente=false;
								}
							}
		this.cambiarIcono=function(Icono,guardar,Icono2){
				//Cambia el icono de la marca
				//el parámetro guardar indica si se guarda la imagen
				//para después recuperarla
					if (guardar)
						{
						lImagen=Icono;
						lImagenMarcado=Icono2;
						this.Imagen=lImagen;
						}
					marca.setIcon(Icono);
			 		 };		
		this.recuperarIcono=function(){
					//Vuelve a poner la imagen principal
					marca.setIcon(lImagen);
					this.Imagen=lImagen;
			 		 };
		
		var ventanaMenuRuta= new google.maps.InfoWindow(
				  { content: pVntInfo,
					size: new google.maps.Size(50,50),
					maxWidth: 400
				  });
		
		this.AgregarMenuRuta=function(pMenuRuta){
			//Cambia el contenido de ventanaMenuRuta
			ventanaMenuRuta.setContent(pMenuRuta);
				};
		//Ventana con click izq sobre marca
		var ventanaInfo= new google.maps.InfoWindow(
				  { content: pVntInfo,
					size: new google.maps.Size(50,50),
					maxWidth: 400
				  });
		//Ventana con click derecho sobre marca
		var ventanaMenu= new google.maps.InfoWindow(
				  { content: pVntMenu,
					size: new google.maps.Size(50,50)
				  });
		var ventanaAgregarResiduo= new google.maps.InfoWindow(
				  { content: pVntAR,
					size: new google.maps.Size(50,50)
				  });
		var ventanaVerResiduo= new google.maps.InfoWindow(
				  {
					size: new google.maps.Size(50,50)
				  });
		
		//Cambia el contenido de ventanaVerResiduo
		this.InfoVerResiduo= function(pInfo){
					ventanaVerResiduo.setContent(pInfo);
					}
		
		//Elimina la marca del mapa
		this.BorrarMarca=function(){
					marca.setMap(null);
					}
		//Función que abre una ventana según el parámetro y cierra las demás 	
		function AMenu(menu){
					switch(menu)
					{
					case 0:
					    ventanaMenu.close();
						ventanaAgregarResiduo.close();
						ventanaVerResiduo.close();
						ventanaMenuRuta.close();
						ventanaInfo.open(lMapa,marca);
					break;
					case 1: 
						ventanaInfo.close();
						ventanaAgregarResiduo.close();
						ventanaVerResiduo.close();
						ventanaMenuRuta.close();
						ventanaMenu.open(lMapa,marca);
					break;
					case 2: 
						ventanaMenu.close();
						ventanaInfo.close();
						ventanaVerResiduo.close();
						ventanaMenuRuta.close();
						ventanaAgregarResiduo.open(lMapa,marca);
					break;
					case 3:
						ventanaMenu.close();
						ventanaInfo.close();
						ventanaAgregarResiduo.close();
						ventanaMenuRuta.close();
						ventanaVerResiduo.open(lMapa,marca);
					break;
					case 4:
						ventanaMenu.close();
						ventanaInfo.close();
						ventanaAgregarResiduo.close();
						ventanaVerResiduo.close();
						ventanaMenuRuta.open(lMapa,marca);
					break;
					}
						}
		//Método para abrir ventanas
		this.AbrirMenu=function(menu)
				{
				AMenu(menu);
				};
		//Método para cerrar todas las ventanas
		this.CerrarVentanas=function(){
						ventanaMenu.close();
						ventanaInfo.close();
						ventanaAgregarResiduo.close();
						ventanaVerResiduo.close();
						ventanaMenuRuta.close();
						}
		// === Evento con click  sobre marca  === 
		google.maps.event.addListener(marca, 'click', function() {
			switch (pTipoMenu)
			{
			case 0:
			lMapa.setCenter(marca.position);
			lMapa.setZoom(16);
			AMenu(0);
			break;
			case 1:
				if (lMarcado==true)
					{
					lMarcado=false;
					marca.setIcon(lImagen);
					}
				else
					{
					lMarcado=true;
					marca.setIcon(lImagenMarcado);
					}
			break;
			}
	  	});
			
		
		// === Evento con click derecho sobre marca  === 
			google.maps.event.addListener(marca, 'rightclick', function() {
			switch (pTipoMenu)
			{
			case 0:
				if (pEditar)
					{
					AMenu(1);
					}
			break;
			case 1: case 2:
				AMenu(4);	
			break;		
			}
			});
					
   	}
	
//Objeto que contiene una infowindow(ventana), propiedades y métodos
 function nMenu(pMapa,pInfoMenu,pMenuCrearCentro,pMenuCrearPoligono)
 	{
	this.punto=null;//Latitud y longitud de la infowindow
	var lMapa=pMapa;//mapa de la infowindow
	this.mapa=lMapa;
	var ventana = new google.maps.InfoWindow(
		  { content: pInfoMenu,
			size: new google.maps.Size(50,50)
		  }); 
	this.info=pInfoMenu;//Contenido de la infowindow 

	this.cambiarMenu= function(pmenu){
				//Cambia el contenido de la ventana
				ventana.setContent(pmenu);
				}
	this.cambiarPosicion= function(cambiarPos){
				//Cambia la posicon en el mapa de la ventana
				//cierra las otras ventanas
				ventana.close();
				ventanaCrearCentro.close();
				ventana.setPosition(cambiarPos);
				this.punto=ventana.getPosition();
				ventana.open(lMapa);
				}
	this.cerrarPrincipal=function(){
				//cierra la ventana principal
							this.punto=null;
							ventana.close();
							}
	var ventanaCrearCentro = new google.maps.InfoWindow(
		//Ventana para crear las localizaciones
		  { content: pMenuCrearCentro,
			size: new google.maps.Size(50,50)
		  }); 
	this.AbrirVentanaCrearCentro= function()
		{
		//cierra la ventana principal
		//abre la ventana crear localizaciones.
		ventana.close();
		ventanaCrearCentro.setPosition(this.punto);	
		ventanaCrearCentro.open(lMapa);	
		}
	this.cerrarCrearPoligono=function(){
		//cierra la ventana crear localizaciones
							ventanaCrearPoligono.close();
							}
		var ventanaCrearPoligono = new google.maps.InfoWindow(
		//Ventana para crear las localizaciones
		  { content: pMenuCrearPoligono,
			size: new google.maps.Size(50,50)
		  }); 
	this.AbrirVentanaCrearPoligono= function()
		{
		//cierra la ventana principal
		//abre la ventana crear localizaciones.
		ventana.close();
		ventanaCrearPoligono.setPosition(this.punto);	
		ventanaCrearPoligono.open(lMapa);	
		}
	this.cerrarCrearCentro=function(){
		//cierra la ventana crear localizaciones
							ventanaCrearCentro.close();
							}
	}
 
function ampliar(pMenu)
	{
	var z= pMenu.mapa.getZoom();
	pMenu.mapa.setCenter(pMenu.punto);
	pMenu.mapa.setZoom(z+1);
	pMenu.cerrarPrincipal();
	}
function reducir(pMenu)
	{
	var z= pMenu.mapa.getZoom();
	pMenu.mapa.setCenter(pMenu.punto);
	pMenu.mapa.setZoom(z-1);
	pMenu.cerrarPrincipal();
	}
function MCrearCentro(pMenu)
	{
	pMenu.AbrirVentanaCrearCentro();
	}
function CrearCentro(pMenu)
	{
	var guardado = nueva_locV2(pMenu.punto);
	if (guardado)
		pMenu.cerrarCrearCentro();
	}
	
function MCrearPoligono(pMenu)
	{
	pMenu.AbrirVentanaCrearPoligono();
	}
function CrearPoligono(pMenu)
	{
	var guardado = nuevo_Poligono(pMenu.punto);
	if (guardado)
		pMenu.cerrarCrearPoligono();
	}
	
function MAgregarResiduo(id)
	{
	var marca = coleccionMarcas.Devuelve(id);
	marca.AbrirMenu(2);
	}
function MVerResiduo(id,orden,ordenA)
	{
	var marca = coleccionMarcas.Devuelve(id);
	ver_residuo(marca,orden,ordenA);
	}
function MNuevoResiduo(id)
	{
	var marca = coleccionMarcas.Devuelve(id);	
	nuevo_residuo(marca);
	}
function MBorraLoc(id)
	{
	var marca = coleccionMarcas.Devuelve(id);	
	borra_loc(marca,idioma);
	}
function MBorraPol(id)
	{
	var marca = coleccionMarcas.Devuelve(id);	
	borra_pol(marca,idioma);
	}
function MEliminarResiduo(idmarca,idresiduo)
	{
	var marca = coleccionMarcas.Devuelve(idmarca);
	borra_resi(marca,idioma,idresiduo);
	}
function VerMenuBusq(idioma)
	{//Despliega o recoge el menu de busqueda
	if (buscar==true)
		{
		CerrarMenuBusq();
		}
	else
		{
		if (polig==true)
			CerrarMenuPol();
		if (rutas==true)
			CerrarMenuRutas();
		AbrirMenuBusq(idioma);
		}
	}
	
function VerMenuPol(idioma) {//Despliega o recoge el menu de busqueda
	if (polig==true)
		{
		CerrarMenuPol();
		}
	else
		{
		if (rutas==true)
			CerrarMenuRutas();
		if (buscar==true) 
			CerrarMenuBusq();
		AbrirMenuPol(idioma);
		}
}
	
function VerMenuRutas()
	{// Despliega o recoge el menu de rutas
	if (rutas==true)
		{
		CerrarMenuRutas();
		}
	else
		{
		if (polig==true)
			CerrarMenuPol();
		if (buscar==true) 
			CerrarMenuBusq();
		AbrirMenuRutas();
		}
	}
	
function RellenarBusqResi()
	{//Función para rellenar el campo de búsqueda por residuo.
	//según lo seleccionado en la la ventana emergente de tipo residuo.
	var capitulolist=document.getElementById("capitulo-2").value;
	var subcapitulolist=document.getElementById("subcapitulo-2").value.split("|")[1];
	var codigolist=document.getElementById("codigo-2").value;
	//Elegimos con que valor de los combos rellenamos el campo
	if (codigolist>0)
		{document.getElementById("BusqPorResiduo").value=codigolist;}
	else
		{
		if (subcapitulolist>0)
			{
			document.getElementById("BusqPorResiduo").value=subcapitulolist;
			}
		else
			if (capitulolist>0)
			{document.getElementById("BusqPorResiduo").value=capitulolist;}
			else
			{document.getElementById("BusqPorResiduo").value="";}
		}
		//Cerrar panel
		$("div#panel").animate({
				height: "0px"
			}, "fast", "swing");
		document.getElementById('panel').style.visibility="hidden";
		document.getElementById('FormDesple').style.visibility="hidden";
	}


function CerrarMenuBusq()
	{//Recoge el menú busqueda del sidebar
		var menu=document.getElementById('menuIzq');
		document.getElementById('menuIzq').style.height="0";
		document.getElementById('menuIzq').style.visibility="hidden";
		//document.getElementById('menuIzq').innerHTML="";
		if (document.getElementById('menuIzq').firstChild!=null)
			document.getElementById('menuIzq').removeChild(document.getElementById('menuIzq').firstChild);
	
		if (overlay!=null)//si tenemos un marco en el mapa para buscar por zona lo limpiamos
							{
							overlay.Limpiar();
							overlay=null;
							}
		cuadro=true;
		vCuadro();//Función que permite crear o no un cuadro en el mapa según variable cuadro

		$("div#panel").animate({
				height: "0px"
			}, "fast", "swing");
		document.getElementById('panel').style.visibility="hidden";
		document.getElementById('FormDesple').style.visibility="hidden";
	buscar=false;
	var il = document.getElementById("liBusq");
	il.removeChild(menu);
	}

function AbrirMenuBusq(pidioma)
	{//Despliega el menú de busqueda del sidebar
		var menuIzq = document.createElement('div');
		menuIzq.id='menuIzq';
		var il = document.getElementById("liBusq");
		var Elegir;
		var Limpiar;
		var Buscar;
		var Mis;
		var empresa;
		var Centro;
		var Cantidad;
		switch (pidioma)
				{
				case 1:
				Elegir='Elegir';
				Limpiar='Limpiar';
				Buscar='Buscar';
				Mis='Mis Centros';
				Empresa='Empresa';
				Centro='Centro';
				Cantidad='Cantidad';
				break;
				case 2: 
				Elegir='Escolher';
				Limpiar='Limpar';
				Buscar='Pesquisar';
				Mis='Meus Sites';
				Empresa='Companhia';
				Centro='Site';
				Cantidad='Quantidade';
				break;
				case 3: 
				Elegir='Escoller';
				Limpiar='Limpar';
				Buscar='Procurar';
				Mis='Meus Sitios';
				Empresa='Compañia';
				Centro='Sitio';
				Cantidad='Cantidade';
				break;
				}
		
		il.appendChild(menuIzq);
		document.getElementById('menuIzq').style.height="200";
		document.getElementById('menuIzq').style.visibility="visible";
		
		//Crea el contenido del menu de busq 
		var tablaBusq= '<table name="tablaBusq" id="tablamenuIzq" align="center">'
			  +'<tr>'
						+'<td><input type="submit" style="width: 60px" value="'+Limpiar+'" onClick="limpiar_marcas()" /></td>'
						+'<td>';
						if (idUsuario!=null && idUsuario>0)
						{tablaBusq= tablaBusq+'<input type="submit" style="width: 70px" value="'+Mis+'" onClick="Buscar(\' and idEmpresa = \' + idEmpresaUsuario)" />';}
						tablaBusq= tablaBusq+'</td>'
						
			  +'</tr>'
			  +'<tr>'
						+'<td>'+Empresa+': </td>'
						+'<td><input style="width: 100px" id="BusqPorEmpresa" name="PorEmpresa"   type="text" /></td>'
						
			   +'</tr>'
			   +'<tr>'
						+'<td>'+Centro+': </td>'
						+'<td><input style="width: 100px" id="BusqPorCentro" name="PorCentro"   type="text" /></td>'
						
			   +'</tr>'
			   +'<tr>'
						+'<td>Tipo'+Centro+': </td>'
						+'<td><select id="BusqTipoCentro"';
						if (idUsuario==null)
							{
							tablaBusq= tablaBusq+' disabled ';	
							}
						tablaBusq= tablaBusq+'><option value=-1 >--'+Elegir+'--</option>'+ comboTipo +'</select></td>'
			   +'</tr>'
			   +'<tr>'
						+'<td>Present.:</td>'
						+'<td><select id="BusqPorPresentacion"';
						if (idUsuario==null)
							{
							tablaBusq= tablaBusq+' disabled ';
							}
							
						tablaBusq= tablaBusq+'>'+comboPresentacion +'</select></td>'
			   +'</tr>'
			   +'<tr>'
						+'<td>'+Cantidad+': </td>'
						+'<td><input size=\"2\" id="BusqPorCantidadMenor" name="PorCantidadMenor"  type="text"';
						if (idUsuario==null)
							{
							tablaBusq= tablaBusq+' disabled onClick="MsjDeshabilitado()"';
							}
						tablaBusq= tablaBusq+'/>&nbsp;&nbsp;A&nbsp;&nbsp;<input size=\"2\" id="BusqPorCantidadMayor" name="PorCantidadMayor"  type="text"';
						if (idUsuario==null)
							{
							tablaBusq= tablaBusq+' disabled onClick="MsjDeshabilitado()"';	
							}
						tablaBusq= tablaBusq+'/></td>'	
			   +'</tr>'
			   +'<tr>'
						+'<td>Residuo: </td>'
						+'<td><input style="width: 40px" id="BusqPorResiduo" name="PorResiduo"   type="text"';
						if (idUsuario==null)
							{
							tablaBusq= tablaBusq+' disabled onClick="MsjDeshabilitado()"';
							}
						tablaBusq= tablaBusq+'/>&nbsp;&nbsp;<input id="BtnResiduo" type="submit"  style="width: 10px;"  value="&raquo;"';
						if (idUsuario==null)
							{
							tablaBusq= tablaBusq+' disabled ';
							}
						tablaBusq= tablaBusq+'/></td>'
			   +'</tr>'
			   +'<tr >'
					+'<td><input type="submit" style="width: 60px" value="'+Buscar+'" onClick="BusqAvanzada()" /></td>'
					+'<td><input id="BtnMarcaZona" type="submit"  style="width: 80px" onClick="vCuadro()" value="Marcar Zona"/></td>'
			   +'</tr>'
			   +'</table>';
		document.getElementById('menuIzq').innerHTML=tablaBusq;
		
		//Creamos los combos que se visualizaran en la ventana emergente para busqueda por tipo residuo
		//---------------------------------------------------
		var MenuBusqResi=CrearMenuResiduo(-2,comboCapitulo,150,false);//El id es -2 para diferenciarlo de las localizaciones
		MenuBusqResi=MenuBusqResi+'<table><tr><td><div onClick="RellenarBusqResi()" class="Boton">Aceptar</div></td><td><div class="Boton" id="CerrarVnt"> Ocultar</div></td></tr></table>';
		//----------------------------------------------------------
		document.getElementById('panel').innerHTML=MenuBusqResi;
		document.getElementById('panel').style.visibility="hidden";
		var posTopFormDesple=document.getElementById('menuIzq').offsetTop+60;
		document.getElementById('FormDesple').style.top=posTopFormDesple.toString()+"px";
		var posLeftFormDesple=document.getElementById('menuIzq').offsetLeft+200;
		document.getElementById('FormDesple').style.left=posLeftFormDesple.toString()+"px";
		$("#BtnResiduo").click(function(){
			document.getElementById('FormDesple').style.visibility="visible";
			document.getElementById('panel').style.visibility="visible";
			$("div#panel").animate({
				height: "120px"
			}, "fast", "swing");
		});
 
		$("#CerrarVnt").click(function(){
			$("div#panel").animate({
				height: "0px"
			}, "fast", "swing");
			document.getElementById('panel').style.visibility="hidden";
			document.getElementById('FormDesple').style.visibility="hidden";
		});	
	buscar=true;
	}


function CerrarMenuPol()
	{//Recoge el menú busqueda del sidebar
		var menu=document.getElementById('menuIzq');
		document.getElementById('menuIzq').style.height="0";
		document.getElementById('menuIzq').style.visibility="hidden";
		//document.getElementById('menuIzq').innerHTML="";
		if (document.getElementById('menuIzq').firstChild!=null)
			document.getElementById('menuIzq').removeChild(document.getElementById('menuIzq').firstChild);
	
		if (overlay!=null)//si tenemos un marco en el mapa para buscar por zona lo limpiamos
							{
							overlay.Limpiar();
							overlay=null;
							}
		cuadro=true;
		vCuadro();//Función que permite crear o no un cuadro en el mapa según variable cuadro

		$("div#panel").animate({
				height: "0px"
			}, "fast", "swing");
		document.getElementById('panel').style.visibility="hidden";
		document.getElementById('FormDesple').style.visibility="hidden";
	polig=false;
	var il = document.getElementById("liPol");
	il.removeChild(menu);
	}

function AbrirMenuPol(pidioma)
	{//Despliega el menú de busqueda del sidebar
		var menuIzq = document.createElement('div');
		menuIzq.id='menuIzq';
		var il = document.getElementById("liPol");
		var Elegir;
		var Limpiar;
		var Buscar;
		var Nombre;
		switch (pidioma)
				{
				case 1:
				Elegir='Elegir';
				Limpiar='Limpiar';
				Buscar='Buscar';
				Nombre='Pol&iacute;gono';
				break;
				case 2: 
				Elegir='Escolher';
				Limpiar='Limpar';
				Buscar='Pesquisar';
				Nombre='Parque';
				break;
				case 3: 
				Elegir='Escoller';
				Limpiar='Limpar';
				Buscar='Procurar';
				Nombre='Pol&iacute;gono';
				break;
				}
		
		il.appendChild(menuIzq);
		document.getElementById('menuIzq').style.height="60";
		document.getElementById('menuIzq').style.visibility="visible";
		
		//Crea el contenido del menu de busq 
		var tablaPol= '<table name="tablaPol" id="tablamenuIzq" align="center">'
			  +'<tr>'
						+'<td><input type="submit" style="width: 60px" value="'+Limpiar+'" onClick="limpiar_marcas()" /></td>'
						+'<td><input type="submit" style="width: 60px" value="'+Buscar+'" onClick="BusqAvanzadaPol()" /></td>'		
			  +'</tr>'
			  +'<tr>'
						+'<td>'+Nombre+': </td>'
						+'<td><input style="width: 100px" id="Poligono" name="Poligono"   type="text" /></td>'
						
			   +'</tr>'
			   +'</table>';
		document.getElementById('menuIzq').innerHTML=tablaPol;
		
		polig=true;
	}

 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
  
	function createRequest()  //Crea una peticin HttpResquest segn el tipo de navegador//
	{
		try 
		{
			request = new XMLHttpRequest(); //objeto que depende del navegador. Establece la peticion (Firefox, Opera, IE7 y IE8)//
		}
		catch (trymicrosoft) //Establece la peticin para navegadores obsoletos, IE6 e inferiores//
		{
			try 
			{
				request=new ActiveXObject("Msxml2.XMLHTTP");
			}
			catch (othermicrosoft) 
			{
				try
				{
					request = new ActiveXObject("Microsoft.XMLHTTP");
				}
				catch (failed)
				{
					request = null;
				}
			}
		}
		if (request == null) //Si la peticin es null significa que no se puede hacer y devuelve error//
		{
			alert("Error al crear la peticin!");
		}
		return request; //Si nada ha fallado nos crea el objeto request//
	}
	
function nueva_locV2(punto)//Graba
	{										
		createRequest();//Se crea la petición al servidor//
		var descripcion = document.getElementById('descripcion').value;
		var nombre = document.getElementById('Nombre').value;
		
		if (nombre!="")
		{
			var TipoCentro = document.getElementById('TipoCentro').value;
			if (TipoCentro<0)
				{alert('Revise TipoCentro'); return false;}
			var Direccion = document.getElementById('Direccion').value;
			if (Direccion=='' )
				{alert('Revise Direccion'); return false;}
			var Localidad = document.getElementById('Localidad').value;
			if (Localidad=='' )
				{alert('Revise Localidad'); return false;}
			var CP = document.getElementById('CP').value;
			if (CP=='' || isNaN(CP) || CP<=0)
				{alert('Revise CP'); return false;}
			
			
			
			var Latitud = punto.lat();
			var Longitud = punto.lng();
			
			var url = "funciones/graba_nueva_loc.php?descripcion=" +descripcion+"&TipoCentro=" +TipoCentro+"&Latitud=" +Latitud+"&Longitud=" +Longitud+"&UsLoc=" +idUsuario+"&EmpLoc=" +idEmpresaUsuario+"&NomCentro=" +nombre+"&Localidad=" +Localidad+"&Direccion=" +Direccion+"&CP=" +CP+ "&timeid=" + Math.floor(Math.random()*100000);
			//request.onreadystatechange=ResNueva_locV2;
			request.open("GET", url, true);
			request.onreadystatechange=ResNueva_locV2;
			request.send(null);
			return true;
		}
		else
		{
		alert('Debe rellenar el campo Nombre');
		return false;
		}
	}
	
	function ResNueva_locV2() //Actualiza la pgina si la peticin llega al estado 4 o sea completado//
	{			
		if (request.readyState == 4)
		{	
		var idLocalizacion = request.responseText;
		if (idLocalizacion!='')
			{
			ObtieneMarcas(' and IdLocalizacion='+idLocalizacion);
			}
		}	
	}
	
	function nuevo_Poligono(punto)//Graba
	{										
		createRequest();//Se crea la petición al servidor//
		var nombre = document.getElementById('Nombre').value;
		
		if (nombre!="")
		{
			var Latitud = punto.lat();
			var Longitud = punto.lng();
			
			var url = "funciones/graba_nuevo_pol.php?nombre=" +nombre +"&Latitud=" + Latitud +"&Longitud=" +Longitud + "&timeid=" + Math.floor(Math.random()*100000);
			//request.onreadystatechange=ResNueva_locV2;
			request.open("GET", url, true);
			request.onreadystatechange=ResNuevo_Poligono;
			request.send(null);
			return true;
		}
		else
		{
		alert('Debe rellenar el campo Nombre');
		return false;
		}
	}
	
	function ResNuevo_Poligono() //Actualiza la pgina si la peticin llega al estado 4 o sea completado//
	{			
		if (request.readyState == 4)
		{	
		var idLocalizacion = request.responseText;
		if (idLocalizacion!='')
			{
			ObtienePoligonos(' and id_poligono='+idLocalizacion);
			}
		}	
	}
	

	
	function ObtieneMarcas(condiciones)
	{										
		request=createRequest();//Se crea la petición al servidor//
		if (condiciones!="")
		{
			var url = "funciones/meter_marcas.php?condiciones=" +condiciones + "&timeid=" + Math.floor(Math.random()*1000000);
			//request.onreadystatechange=ResObtieneMarcas;
			request.open("GET", url, true);
			//request.setRequestHeader('If-Modified-Since', 'Sat, 1 Jan 2000 00:00:00 GMT');
			request.onreadystatechange=ResObtieneMarcas;
			request.send(null);
		}
		else
		{ 	
			var url = "funciones/meter_marcas.php?condiciones=-1" + "&timeid=" + Math.floor(Math.random()*1000000);
			//request.onreadystatechange=ResObtieneMarcas;
			request.open("GET", url, true);
			//request.setRequestHeader('If-Modified-Since', 'Sat, 1 Jan 2000 00:00:00 GMT');
			request.onreadystatechange=ResObtieneMarcas;
			request.send(null);
		}
		
	}
	
	function ResObtieneMarcas() //Actualiza Marcas
	{			
		if (request.readyState == 4)
		{				
			//alert (request.responseText);
			var lineas = request.responseText.split(";;;");
			var BotonDerecho;
			var Norte;
			var Sur;
			var Este;
			var Oeste;
			for (var i = 0; i < lineas.length-1; i++) 
			 	{
				BotonDerecho=false;
				//alert (lineas[i]);
				var datos = lineas[i].split("/&");
				if (idUsuario!=null && idEmpresaUsuario==datos[5]) {BotonDerecho=true;}
				var latlng1 = new google.maps.LatLng(datos[2],datos[3]);
				var image;
				var VerResiduos='';
				//alert (datos[7]);
				if (datos[7]==0)// Si no tiene residuos
					{
					VerResiduos='';
						if (datos[6]==0)// tipo de centro 
							{
								if (BotonDerecho)
									image = 'iconos/fabrica-propio.gif';
								else
									image = 'iconos/fabrica.gif';
							}
						else
							{
							if (BotonDerecho)
								image = 'iconos/Transporte-propio.gif';
							else
								image = 'iconos/Transporte.gif';	
							}
					}
				else
					{
					if (idUsuario!=null)
						{VerResiduos='<a style=\"text-decoration:none;font-size:10px\" href=\"javascript:MVerResiduo('+ datos[0] +')\">Ver Residuos&nbsp;&nbsp;<\/a>';}
					
					if (datos[8]==0)// si tiene residuos peligrosos
						if (BotonDerecho)
							image = 'iconos/residuo-propio.gif';	
						else
							image = 'iconos/residuo.gif';
					else
						if (BotonDerecho)
							image = 'iconos/residuo-peligro-propio.gif';
						else
							image = 'iconos/residuo-peligro.gif';
					}
				var menuMarcador='';
				//Creamos el menu con boton derecho
				if (idUsuario!=null)
				{
					if (TipoUsuario==2)// Usuario gestor
						{ menuMarcador=CrearMenuMarcador(datos[0],true,true);}
					else
						if (TipoUsuario==1)
						{
							if (LocUsuario==datos[0])// Localizacion permitida
								{ menuMarcador=CrearMenuMarcador(datos[0],false,true);}
							else
								{menuMarcador=CrearMenuMarcador(datos[0],false,false);}	
						}
				}
				
				
				var menuResiduo=CrearMenuResiduo(datos[0],comboCapitulo,350,true,comboPresentacion,comboUnidades,comboPeriodicidad);
				var menuInfo=CrearMenuInfo(datos[4],datos[10],datos[1],VerResiduos,datos[0],datos[11]);
				//Creamos la nueva marca
				var marker = new LocMarca(datos[0],datos[9],datos[5],latlng1,map,datos[4]+' : '+datos[10],image,BotonDerecho,menuInfo,menuMarcador,menuResiduo,datos[6],image.substring(0,image.length-4)+'-selec.gif'); 
				//añadimos a la coleccion la marca nueva
				coleccionMarcas.Agregar(datos[0],marker);
				
				//Agregamos el menu que se verá con la opcion de rutas activadas
				marker.AgregarMenuRuta('<div  id=\"menuMapa\" onMouseOut=\"LlevarAtras('+ datos[0] +')\" onMouseOver=\"TraerFrente('+ datos[0] +')\" style=\"font-size:12px\"><a style=\"text-decoration:none\" href=\"javascript:RutaDA('+ datos[0] +')\"><div >&nbsp;&nbsp;Punto inicio ruta&nbsp;&nbsp;<\/div><\/a><a style=\"text-decoration:none\" href=\"javascript:RutaHA('+ datos[0] +')\"><div >&nbsp;&nbsp;Punto fin ruta&nbsp;&nbsp;<\/div><\/a><a style=\"text-decoration:none\" href=\"javascript:RutaDH('+ datos[0] +')\"><div >&nbsp;&nbsp;Punto inicio/fin ruta&nbsp;&nbsp;<\/div><\/a></div>');
				
				
				//Anotamos los puntos mas periféricos
				if (Norte==null)
					{Norte=datos[2];}
				else
					{
					if (Norte<datos[2])
						{Norte=datos[2];}
					}
				if (Sur==null)
					{Sur=datos[2];}
				else
					{
					if (Sur>datos[2])
						{Sur=datos[2];}
					}
				if (Este==null)
					{Este=datos[3];}
				else
					{
					if (Este>datos[3])
						{Este=datos[3];}
					}
				if (Oeste==null)
					{Oeste=datos[3];}
				else
					{
					if (Oeste<datos[3])
						{Oeste=datos[3];}
					}
				}//Fin del for
				
				
			//ajustamos mapa
			if (Oeste!=null && Este!=null && Norte!=null && Sur!=null)
			{
			var neBound = new google.maps.LatLng(Norte, Este);
			var swBound = new google.maps.LatLng(Sur, Oeste);
			var bounds = new google.maps.LatLngBounds(swBound, neBound);
			//map.panToBounds(bounds);
			map.fitBounds(bounds);
			}
			else
			{
			var latlng = new google.maps.LatLng(42.625876,-7.662964);
			map.setCenter(latlng);
			}
			
		}	
	}
	
	
	function borra_loc(pmarca,pidioma)//borra
	{										
		createRequest();//Se crea la petición al servidor//
		var idloc=pmarca.idMarca;
		if (idloc!="")
		{
			switch (pidioma)
				{
				case 1:
				mensaje='¿Seguro que desea eliminarlo?';
				break;
				case 2: 
				mensaje='Você deseja excluir?';
				break;
				case 3: 
				mensaje='Queres eliminar?';
				break;
				}
			if (confirm(mensaje)) 
				{
				var url = "funciones/borra_loc.php?idLoc=" +idloc+ "&timeid=" + Math.floor(Math.random()*100000);
				//request.onreadystatechange=ResBorra_loc;
				request.open("GET", url, true);
				request.onreadystatechange=ResBorra_loc;
				request.send(null);
				}
		}
	}
	
	function ResBorra_loc() //Borra Marca Mapa
	{
		if (request.readyState == 4)
		{	
		var res = request.responseText;
		if (res!='')
			{
			var marca = coleccionMarcas.Devuelve(res);
			if (marca!=null){
				var id=marca.idMarca;
				marca.BorrarMarca();
				marca.CerrarVentanas();
				coleccionMarcas.Quitar(id);
				}
			}
		}	
	}
	
		
	function borra_pol(pmarca,pidioma)//borra
	{										
		createRequest();//Se crea la petición al servidor//
		var idloc=pmarca.idMarca;
		if (idloc!="")
		{
			switch (pidioma)
				{
				case 1:
				mensaje='¿Seguro que desea eliminarlo?';
				break;
				case 2: 
				mensaje='Você deseja excluir?';
				break;
				case 3: 
				mensaje='Queres eliminar?';
				break;
				}
			if (confirm(mensaje)) 
				{
				var url = "funciones/borra_pol.php?idPol=" +idloc+ "&timeid=" + Math.floor(Math.random()*100000);
				//request.onreadystatechange=ResBorra_loc;
				request.open("GET", url, true);
				request.onreadystatechange=ResBorra_loc;
				request.send(null);
				}
		}
	}
	
	function ResBorra_pol()
	{
		if (request.readyState == 4)
		{	
		var res = request.responseText;
		if (res!='')
			{
			var marca = coleccionMarcas.Devuelve(res);
			if (marca!=null){
				var id=marca.idMarca;
				marca.BorrarMarca();
				marca.CerrarVentanas();
				coleccionMarcas.Quitar(id);
				}
			}
		}	
	}
	
	//_---------------------______------------------------------______---------------------------_______-----------------------
	function limpiar_marcas()
	{  //Eliminamos todas las marcas de la colección
		while (coleccionMarcas.length>0)
			{
			coleccionMarcas.Items[0].Objeto.CerrarVentanas();
			coleccionMarcas.Items[0].Objeto.BorrarMarca();
			coleccionMarcas.Quitar(coleccionMarcas.Items[0].Id);
			}
	}
	//_---------------------______------------------------------______---------------------------_______-----------------------	
	function nuevo_residuo(pmarca)//Graba
	{										
		createRequest();//Se crea la petición al servidor//
		var idLoc= pmarca.idMarca;
		var cantidad = document.getElementById("Cantidad"+idLoc).value;
		var TipoResiduo = document.getElementById("codigo"+idLoc).value;
		var Presentacion = document.getElementById("Presentacion"+idLoc).value;
		var comentario = document.getElementById("Comentario"+idLoc).value;
		var Unidades = document.getElementById("Unidades"+idLoc).value;
		var Periocidad = document.getElementById("Periocidad"+idLoc).value;
		
		if (TipoResiduo>0)
		{
		if (Presentacion.split(";")[0]<0)
			{alert('Revise Presentacion'); return}
		if (cantidad=='' || isNaN(cantidad) || cantidad<=0)
			{alert('Revise cantidad'); return}
		if (Unidades<0)
			{alert('Revise Unidades'); return}
			var url = "funciones/graba_residuo.php?cantidad=" +cantidad+"&TipoResiduo=" +TipoResiduo+"&Presentacion=" +Presentacion+"&Comentario=" +comentario+"&idLoc=" +idLoc+"&Unidades=" +Unidades+"&Periocidad=" +Periocidad+"&Usuario=" +idUsuario+ "&timeid=" + Math.floor(Math.random()*100000);
			//request.onreadystatechange=ResNuevo_residuo;
			request.open("GET", url, true);
			request.onreadystatechange=ResNuevo_residuo;
			request.send(null);
		}
		else
		{
		alert('Debe selecionar un residuo');
		}
	}
	
	function ResNuevo_residuo() //Actualiza la pgina si la peticin llega al estado 4 o sea completado//
	{			
		if (request.readyState == 4)
		{	
		var res = request.responseText;
		if (res!='')
			{
			var marca = coleccionMarcas.Devuelve(res);
			if (marca!=null){
				var id=marca.idMarca;
				MVerResiduo(id);
				}
			}
		}	
	}
	
	
	
	function ver_residuo(pmarca,porden,pOrdenA)//Ver informacion residuos marca
	{										
		createRequest();//Se crea la petición al servidor//
		var idLoc= pmarca.idMarca;
		var Editar= pmarca.editar;
		var orden;
		if (porden==null) 
			orden=-1;
		else
			orden=porden;
		var ordenA;
		if (pOrdenA==null) 
			ordenA=-1;
		else
			ordenA=pOrdenA;
		if (idLoc!=-1)
		{
			var url = "funciones/ver_residuo.php?idLoc="+idLoc+"&editar="+Editar+"&orden="+orden+"&ordenA="+ordenA+ "&timeid=" + Math.floor(Math.random()*100000);
			//request.onreadystatechange=ResVerResiduo;
			request.open("GET", url, true);
			request.onreadystatechange=ResVerResiduo;
			request.send(null);
		}
	}
	
	function ResVerResiduo() //Actualiza la pgina si la peticin llega al estado 4 o sea completado//
	{			
		if (request.readyState == 4)
		{	
		var res = request.responseText.split(";;;");
		if (res[1]!='')
			{
			var menuVerResiduos= res[0];
			var marca = coleccionMarcas.Devuelve(res[1]);
			marca.InfoVerResiduo(menuVerResiduos);
			marca.AbrirMenu(3);
			
			// Cambiar Imagen según residuos que tiene la marca 
			var image;
			if (res[2]!=-1)
				{
					switch(res[2])
						{
						case "0": 
							if (marca.tipo==0)
								{
								image = 'iconos/fabrica-propio.gif';
								}
							else
								{
								image = 'iconos/Transporte-propio.gif';
								}
							
						break;
						case "1":
							image = 'iconos/residuo-propio.gif';	
						break;
						case "2":
							image = 'iconos/residuo-peligro-propio.gif';
						break;
						}
					marca.cambiarIcono(image,true,image.substring(0,image.length-4)+'-selec.gif');
				}
			}
		}	
	}


function borra_resi(pMarca,pIdioma,pIdResiduo)
	{
		createRequest();//Se crea la petición al servidor//
		var idloc=pMarca.idMarca;
		if (idloc!="" && pIdResiduo!="")
		{
			switch (pIdioma)
				{
				case 1:
				mensaje='¿Seguro que desea eliminarlo?';
				break;
				case 2: 
				mensaje='Você deseja excluir?';
				break;
				case 3: 
				mensaje='Queres eliminar?';
				break;
				}
			if (confirm(mensaje)) 
				{
				var url = "funciones/borra_resi.php?idResi=" +pIdResiduo+"&idLoc=" +idloc+ "&timeid=" + Math.floor(Math.random()*100000);
				//request.onreadystatechange=ResBorra_resi;
				request.open("GET", url, true);
				request.onreadystatechange=ResBorra_resi;
				request.send(null);
				}
		}
	}
	
	function ResBorra_resi()
	{
		if (request.readyState == 4)
		{	
		var res = request.responseText;
		if (res!='')
			{
			//ObtieneMarcas(' and IdLocalizacion =' + res)
			MVerResiduo(res);
			}
		}	
	}




////////////////////////////////////////////////////////////////////////////////////////////////////////////////

function CrearMenuMarcador(idMarcador,pEliminar,pAgregarR)
	{
	var menu;
	 menu= '<div class=\"menus\"  onMouseOut=\"LlevarAtras('+ idMarcador +')\" onMouseOver=\"TraerFrente('+ idMarcador +')\" style=\"font-size:12px\">'
	 
	if (pEliminar)
	 	{menu=menu + '<a style=\"text-decoration:none\" href=\"javascript:MBorraLoc('+ idMarcador +')\"><div>	&nbsp;&nbsp;Eliminar Centro&nbsp;&nbsp;<\/div><\/a>'}
	if (pAgregarR)
	 	{menu=menu + '<a style=\"text-decoration:none\" href=\"javascript:MAgregarResiduo('+ idMarcador +')\"><div>&nbsp;&nbsp;A&ntilde;adir Residuo&nbsp;&nbsp;<\/div><\/a>'}
	 
	menu=menu+'<a style=\"text-decoration:none\" href=\"javascript:MVerResiduo('+ idMarcador +')\"><div>&nbsp;&nbsp;Ver Residuos&nbsp;&nbsp;<\/div><\/a></div>';
	return menu;
	}

function CrearMenuMarcadorPol(idMarcador,pEliminar)
	{
	var menu;
	 menu= '<div class=\"menus\"  onMouseOut=\"LlevarAtras('+ idMarcador +')\" onMouseOver=\"TraerFrente('+ idMarcador +')\" style=\"font-size:12px\">'
	 
	if (pEliminar)
	 	{menu=menu + '<br /><a style=\"text-decoration:none\" href=\"javascript:MBorraPol('+ idMarcador +')\"><div>	&nbsp;&nbsp;Eliminar Pol&iacute;gono&nbsp;&nbsp;<\/div><\/a>'}
	return menu;
}

function CrearMenuResiduo(idMarcador,pComboCapitulo,pWidth,NoBusq,pComboPresentacion,pComboUnidades,pComboPeriodicidad)
	{
	var menu= '<div class=\"menus\" id=\"principal\"'
	if (NoBusq==true)
	{
		menu=menu+'onMouseOut=\"LlevarAtras('+ idMarcador +')\" onMouseOver=\"TraerFrente('+ idMarcador +')\"' 
	}
	menu=menu+'>'
	+'<form name=\"residuo\">'
	+'<table id=\"tabla_residuo'+ idMarcador +'\" style=\"font-size:12px\" >'
	+'<tr><td>Cap&iacute;tulo</td><td><select  id=\"capitulo'+ idMarcador +'\" name=\"capitulo\" onChange=\"updatesubcapitulo(this.selectedIndex,'+ idMarcador +')\" style=\"width:'+pWidth+'px;font-size:8pt\">'+pComboCapitulo+'</select></td></tr>'
	+'<tr><td>Subcap&iacute;tulo</td><td>'
	+'<select id=\"subcapitulo'+ idMarcador +'\" name=\"subcapitulo\" onChange=\"updatecodigo(this.selectedIndex,'+ idMarcador +')\" style=\"width: '+pWidth+';font-size:8pt\" >'
	+'<option selected value=\"-1\" >Selecione subcap&iacute;tulo</option></select>'
	+'</td></tr>'
	+'<tr><td>C&oacute;digo</td><td>'
	+'<select id=\"codigo'+ idMarcador +'\" name=\"codigo\" style=\"width: '+pWidth+';font-size:8pt\" >'
	+'<option selected value=\"-1\">Selecione c&oacute;digo</option></select>'
	+'</td></tr>';
	if (NoBusq==true)
	{
		menu=menu+'<tr><td>Presentaci&oacute;n</td><td><select id=\"Presentacion'+ idMarcador +'\" onChange=\"updateUnidades('+ idMarcador +')\" name=\"codigo\" style=\"width: 350px;font-size:8pt\" >'
		+pComboPresentacion+'</select></td></tr>'
	}
	if(NoBusq==true)
	{
		menu=menu+'<tr><td>Cantidad</td><td><input  name=\"Cantidad\" onKeyDown="ComprobarKey(event,this.form.Comentario'+ idMarcador +')" type=\"text\" id=\"Cantidad'+ idMarcador +'\" size=\"10\" />'
		+'&nbsp;&nbsp;<select id=\"Unidades'+ idMarcador +'\" name=\"Unidades\" style=\"width: 50px;font-size:8pt\" ><option selected option value=\"-1\"></option>'+pComboUnidades
		+'</select>'
	}
	if(NoBusq==true)
	{
		menu=menu+'<select id=\"Periocidad'+ idMarcador +'\" name=\"Unidades\" style=\"width: 90px;font-size:8pt\" >'+pComboPeriodicidad
		+'</select>'
		+'</td></tr>'
		+'<tr><td>Comentarios</td><td><textarea   onKeyDown="ComprobarKey(event,this.form.Grabar'+ idMarcador +')" id=\"Comentario'+ idMarcador +'\"  name=\"Comentario\" rows=\"6\" cols=\"42\"></textarea></td>'
		+'</td></tr>'
		+'<tr><td colspan=\"2\" align=\"right\"><input id=\"Grabar'+ idMarcador +'\"  name=\"Grabar\" type=\"button\" onClick=\"javascript:MNuevoResiduo('+ idMarcador +');\" value=\"Grabar\" /></td>'
		+'</tr>'
	}
	menu=menu+'</table>'+'</form>'+'</div>';
	return menu;
	}
		
function CrearMenuInfo(pEmpresa,pNombreCentro,pDescripcionCentro,pResiduos,pId,pEmail)
			{
			return '<div class=\"menus\" onMouseOut=\"LlevarAtras('+ pId +')\" onMouseOver=\"TraerFrente('+ pId +')\" ><table style=\"font-size:12px\"><tr><td><b>Empresa:</b></td><td>'+ pEmpresa + '</td></tr><tr><td><b>Centro:</b></td><td>' + pNombreCentro + '</td></tr><tr><td><b>Descripcion:</b></td><td>' + pDescripcionCentro + '</td></tr><tr><td><b>Email:</b></td><td>' + pEmail + '</td></tr><tr><td>&nbsp;</td></tr><tr><td><div id="IdLocalizacion" style="visibility:hidden" >'+ pId + '</div></td><td>'+ pResiduos + '</td></tr></table></div>';	
}
		
function CrearMenuPoligono(pId,poligono) {
	return '<div class=\"menus\" onMouseOut=\"LlevarAtras('+ pId +')\" onMouseOver=\"TraerFrente('+ pId +')\" ><table style=\"font-size:12px\"><tr><td>'+ poligono + '</td></tr></table></div>';	
}

function CrearMenuCPoligono(pComboTipo,pidioma) {
		var nombre;
		switch(pidioma)
			{
				case 1:
				nombre='Nombre';
				break;
				case 2:
				nombre='Nome';
				case 3:
				nombre='Nome';
				break;
			}
		return '<div id=\"principal\"  >'
		+'<form name=\"principal\"><br />'
			+'<table id=\"tabla_principal\" style=\"font-size:12px\" >'
				+'<tr>'
					+'<th>' + nombre + ' </th>'
					+'<td><input name=\"texto1\" type=\"text\" id=\"Nombre\" size=\"30\" /></td>'
				+'</tr>'
				+'<tr>'
					+'<td colspan=\"2\" align=\"right\"><input name=\"Grabar\" type=\"button\" onClick=\"javascript:CrearPoligono(nuevoMenu);\" value=\"Grabar\" /></td>'
				+'</tr>'
                +'<tr>'
					+'<td colspan=\"2\" align=\"center\"><div id=\"Resultado\"></div></td>'
				+'</tr>'
			+'</table>'
		+'</form>'
		+'</div>';	
}

function CrearMenuCCentro(pComboTipo,pidioma)
		{
		var nombre;
		var Tipo;
		var Direccion;
		switch(pidioma)
			{
				case 1:
				nombre='Nombre';
				Tipo='Tipo';
				Direccion='Direccion';
				break;
				case 2:
				nombre='Nome';
				Tipo='Tipo';
				Direccion='Direcion';
				break;
			}
		return '<div id=\"principal\"  >'
		+'<form name=\"principal\">'
			+'<table id=\"tabla_principal\" style=\"font-size:12px\" >'
				+'<tr>'
					+'<th>' + nombre + ' </th>'
					+'<td><input name=\"texto1\" type=\"text\" id=\"Nombre\" size=\"30\" /></td>'
				+'</tr>'
				+'<tr>'
					+'<th>'+ Tipo +': </th>'
					+'<td>'
					+'<select id=\"TipoCentro\">'+'<option value=-1 >--Selecciona--</option>'
					+pComboTipo
					+'</select></td>'
				+'</tr>'
				+'<tr>'
					+'<th>'+ Direccion +': </th>'
					+'<td><input name=\"Direccion\" type=\"text\" id=\"Direccion\" size=\"30\" /></td>'
				+'</tr>'
				+'<tr>'
					+'<th>Localidad: </th>'
					+'<td><input name=\"Localidad\" type=\"text\" id=\"Localidad\" size=\"30\" /></td>'
				+'</tr>'
				+'<tr>'
					+'<th>C.P.: </th>'
					+'<td><input name=\"CP\" type=\"text\" id=\"CP\" size=\"10\" /></td>'
				+'</tr>'
				+'<tr>'
					+'<th>Descripcion: </th>'
					+'<td><textarea id=\"descripcion\" rows=\"6\" cols=\"42\"></textarea></td>'
				+'</tr>'
                +'<tr>'
					+'<td colspan=\"2\" align=\"right\"><input name=\"Grabar\" type=\"button\" onClick=\"javascript:CrearCentro(nuevoMenu);\" value=\"Grabar\" /></td>'
				+'</tr>'
                +'<tr>'
					+'<td colspan=\"2\" align=\"center\"><div id=\"Resultado\"></div></td>'
				+'</tr>'
			+'</table>'
		+'</form>'
	+'</div>';	
		}

function Buscar(condiciones)
		{
		limpiar_marcas();
		ObtieneMarcas(condiciones);
		}
function BusqAvanzada()
		{
		if (cuadro)//Si está activada la opcion de crear el cuadro de busq por zona
			vCuadro();
		var condiciones='';
		var Empresa = document.getElementById("BusqPorEmpresa").value;
		var NomCentro = document.getElementById("BusqPorCentro").value;
		var TipoCentro = document.getElementById("BusqTipoCentro").value;
		var Presentacion = document.getElementById("BusqPorPresentacion").value.split(";");
		var CantidadMa = document.getElementById("BusqPorCantidadMayor").value;
		var CantidadMe = document.getElementById("BusqPorCantidadMenor").value;
		var TipResiduo = document.getElementById("BusqPorResiduo").value;
		if (Empresa!='')
			{condiciones=condiciones+' and NombreEmpresa like \'@'+ Empresa +'@\'';}
		if (NomCentro!='')
			{condiciones=condiciones+' and NombreCentro like \'@'+ NomCentro +'@\'';}
		if (TipoCentro!=-1)
			{condiciones=condiciones+' and TipoCentro ='+ TipoCentro;}
		if (Presentacion[0]!=-1)
			{condiciones=condiciones+' and Presentacion ='+ Presentacion[0];}
		if (CantidadMe!='')
			{condiciones=condiciones+' and Cantidad >='+CantidadMe;}
		if (CantidadMa!='')
			{condiciones=condiciones+' and Cantidad <='+CantidadMa;}
		if (TipResiduo!='')
			{
			switch(TipResiduo.length)
			 {
				case 2:
				condiciones=condiciones+' and capitulo ='+TipResiduo;	
				break;
				case 4:
				condiciones=condiciones+' and subcapitulo ='+TipResiduo;
				break;
				case 6:
				condiciones=condiciones+' and IdTipoResiduo ='+TipResiduo;
				break;
				default:
				condiciones=condiciones+' and IdTipoResiduo =-1';
				break;
			 }
			
			}
			
		if (overlay!=null)//si hay cuadro para la busq por zona
			{
			condiciones=condiciones+' and Longitud>'+overlay.Oeste+' and Longitud<'+overlay.Este+' and Latitud>'+overlay.Sur+' and Latitud<'+overlay.Norte;
			}
		Buscar(condiciones);
		}

function BuscarPol(condiciones)
		{
		//limpiar_marcas();
		ObtienePoligonos(condiciones);
		}
function BusqAvanzadaPol()
		{
		if (cuadro)//Si está activada la opcion de crear el cuadro de busq por zona
			vCuadro();
		var condiciones='';
		var Poligono = document.getElementById("Poligono").value;
		if (Poligono!='')
			{condiciones=condiciones+' and poligono like \'@'+ Poligono +'@\'';}
			
		if (overlay!=null)//si hay cuadro para la busq por zona
			{
			condiciones=condiciones+' and Longitud>'+overlay.Oeste+' and Longitud<'+overlay.Este+' and Latitud>'+overlay.Sur+' and Latitud<'+overlay.Norte;
			}
		BuscarPol(condiciones);
		}

function ComprobarKey(e,t)
{
//Función que manda el foco al elemento "t" 
var k=null;
if  (e.keyCode)
{k=e.keyCode;}
else
{ k=e.which;}
if (k==13)
	{
	if (t)
		{
		t.focus();
		}
	}
}


//	Para que las ventana que están por detrás de otras se 
//	vuelvan visibles al pasar el ratón por encima
function TraerFrente(id)
	{
	var marca = coleccionMarcas.Devuelve(id);
	marca.MenuAlFrente();
	}
function LlevarAtras(id)
	{
	var marca = coleccionMarcas.Devuelve(id);
	marca.MenuAtras();	
	}
	
function MsjDeshabilitado()
{
alert('Funcion deshabilitada. Debe registrarse para poder acceder a todas las funcionalidades.');
}


//Función para imprimir las rutas
function impre(res) {
	//Oculta toda la página y pone visible "directionsPanel2" para imprimir
	document.body.style.backgroundColor="#FFF";
	var contenedor= document.getElementById('container');
	var div=document.getElementById('directionsPanel2');
	//div.style.overflow="inherit";
	div.style.height="auto";
	div.style.visibility="visible";
	document.getElementById('btnsRutas').style.visibility="hidden";
	document.getElementById('panelRutas').style.visibility="hidden";
	document.getElementById('MenuRutas').style.visibility="hidden";
	contenedor.style.visibility="hidden";
	
	if (res!=null)
		{directionsDisplay2.setDirections(res);}
	setTimeout("Imp()",500);//Llama a la funcion Imp() despues del tiempo indicado
}

function Imp(){
	print(); 
	setTimeout ("VolverOriginal()", 1000);
}

function VolverOriginal()
	{
	//Pone la pagina en su estado original
	document.body.style.backgroundColor="#666666";
	document.getElementById('btnsRutas').style.visibility="visible";
	document.getElementById('panelRutas').style.visibility="visible";
	document.getElementById('MenuRutas').style.visibility="visible";
	var contenedor= document.getElementById('container');
	var div=document.getElementById('directionsPanel2');
	contenedor.style.visibility="visible";
	div.style.visibility="hidden";
	div.style.height="10";
	div.style.overflow="auto";
	}


//------------------- POLIGONOS ----------------------------------------

	function ObtienePoligonos(condiciones)
	{										
		request=createRequest();//Se crea la petición al servidor//
		if (condiciones!="")
		{
			var url = "funciones/meter_poligonos.php?condiciones=" +condiciones + "&timeid=" + Math.floor(Math.random()*1000000);
			//request.onreadystatechange=ResObtieneMarcas;
			request.open("GET", url, true);
			//request.setRequestHeader('If-Modified-Since', 'Sat, 1 Jan 2000 00:00:00 GMT');
			request.onreadystatechange=ResObtienePoligonos;
			request.send(null);
		}
		else
		{ 	
			var url = "funciones/meter_poligonos.php?condiciones=-1" + "&timeid=" + Math.floor(Math.random()*1000000);
			//request.onreadystatechange=ResObtieneMarcas;
			request.open("GET", url, true);
			//request.setRequestHeader('If-Modified-Since', 'Sat, 1 Jan 2000 00:00:00 GMT');
			request.onreadystatechange=ResObtienePoligonos;
			request.send(null);
		}
		
	}
	
	function ResObtienePoligonos() //Actualiza Poligonos
	{			
		if (request.readyState == 4)
		{				
			//alert (request.responseText);
			var lineas = request.responseText.split(";;;");
			var BotonDerecho;
			var Norte;
			var Sur;
			var Este;
			var Oeste;
			for (var i = 0; i < lineas.length-1; i++) 
			 	{
				BotonDerecho=true;
				//alert (lineas[i]);
				var datos = lineas[i].split("/&");
				//if (idUsuario!=null && idEmpresaUsuario==datos[5]) {BotonDerecho=true;}
				var latlng1 = new google.maps.LatLng(datos[2],datos[3]);
				var image;
				//alert (datos[7]);
				image = 'iconos/poligono.gif';
				var menuMarcador='';
				//Creamos el menu con boton derecho
				if (idUsuario!=null)
				{
					if (TipoUsuario==3)// Usuario gestor
						{ menuMarcador=CrearMenuMarcadorPol(datos[0],true);}
				}
				
				var menuResiduo=CrearMenuResiduo(datos[0],comboCapitulo,350,true,comboPresentacion,comboUnidades,comboPeriodicidad);
				var menuInfo=CrearMenuPoligono(datos[0],datos[1]);
				//Creamos la nueva marca
				var marker = new LocMarca(datos[0],'1','1',latlng1,map,datos[1],image,BotonDerecho,menuInfo,menuMarcador,menuResiduo,'1',image.substring(0,image.length-4)+'-selec.gif'); 
				//añadimos a la coleccion la marca nueva
				coleccionMarcas.Agregar(datos[0],marker);
				
				//Agregamos el menu que se verá con la opcion de rutas activadas
				marker.AgregarMenuRuta('<div  id=\"menuMapa\" onMouseOut=\"LlevarAtras('+ datos[0] +')\" onMouseOver=\"TraerFrente('+ datos[0] +')\" style=\"font-size:12px\"><a style=\"text-decoration:none\" href=\"javascript:RutaDA('+ datos[0] +')\"><div >&nbsp;&nbsp;Punto inicio ruta&nbsp;&nbsp;<\/div><\/a><a style=\"text-decoration:none\" href=\"javascript:RutaHA('+ datos[0] +')\"><div >&nbsp;&nbsp;Punto fin ruta&nbsp;&nbsp;<\/div><\/a><a style=\"text-decoration:none\" href=\"javascript:RutaDH('+ datos[0] +')\"><div >&nbsp;&nbsp;Punto inicio/fin ruta&nbsp;&nbsp;<\/div><\/a></div>');
				
				
				//Anotamos los puntos mas periféricos
				if (Norte==null)
					{Norte=datos[2];}
				else
					{
					if (Norte<datos[2])
						{Norte=datos[2];}
					}
				if (Sur==null)
					{Sur=datos[2];}
				else
					{
					if (Sur>datos[2])
						{Sur=datos[2];}
					}
				if (Este==null)
					{Este=datos[3];}
				else
					{
					if (Este>datos[3])
						{Este=datos[3];}
					}
				if (Oeste==null)
					{Oeste=datos[3];}
				else
					{
					if (Oeste<datos[3])
						{Oeste=datos[3];}
					}
				}//Fin del for
				
				
			//ajustamos mapa
			if (Oeste!=null && Este!=null && Norte!=null && Sur!=null)
			{
			var neBound = new google.maps.LatLng(Norte, Este);
			var swBound = new google.maps.LatLng(Sur, Oeste);
			var bounds = new google.maps.LatLngBounds(swBound, neBound);
			//map.panToBounds(bounds);
			map.fitBounds(bounds);
			}
			else
			{
			var latlng = new google.maps.LatLng(42.625876,-7.662964);
			map.setCenter(latlng);
			}
			
		}	
	}
	
