var contenidoMapAyuda='<div><img src="http://reforma.webmaps.com.mx/images/btns/ayudaMouse_mural.gif" /></div>';
var sesion='meineSession' + new Date().getTime();
var actividad;

/************* VARIABLES A DEFINIR PARA LOS TOOLTIP'S *************/
var orientacionH="left";	//"right", "center", or "left".
var orientacionV="bottom";		//"top", "center", or "bottom".
var separacionH=10;
var separacionV=0;
/************* VARIABLES A DEFINIR PARA EL REVERSEGEOCODE *************/
var symbolReverseG=75202; //
var flagGrupo=null;

/************* VARIABLES A DEFINIR PARA EL BUSCADOR *************/
var symbolBusqueda=20001; //
numeroResultados=10;
validarEdo=false

/************* VARIABLES A DEFINIR PARA EL RUTEO *************/
symbolD=6;
symbolO=8;
modo="Shortest"; //"Faster";
colorRoute="#"+estado[periodico].color_l;
alfaRoute=160;
zoomVuelo=5000;
flagStart=false;
flagAutoShow=false;
flagRemovePto=false;



var minVisibilidadLoc=0;
var maxVisibilidadLoc=300;
var bandMap, banDes, elimina=false; 



 
/***		INICIALIZACION DE MAPA		***/
function goMap24() {  Map24.loadApi( ["core_api", "wrapper_api"], map24ApiLoaded );  }  

function map24ApiLoaded(){		
	if( Map24.Browser.javaAvailable () ){
		Map24.MapApplication.setStartMapView(  estado_iniMap[periodico]  );
		Map24.MapApplication.setAppletParameters({URL_GUIHELP: "javascript:showAyuda(contenidoMapAyuda);"});	
			Map24.MapApplication.init({ NodeName: 'divMapa', MapType: 'Applet', SessionId: sesion });	
		conn = Map24.MapApplication.Map.WebServices.openConnection(); 	
		locc = Map24.MapApplication.Map.Local.openConnection();	
		startComponent("HAND");	
		showLayers([11899,12972,12828,12829,12830,12831,12832,12875,12876,12877,12878],false,false);
		modificar_barra();
		Map24.MapApplication.Map.addListener( "Map24.Event.MapClick", mapClicked );    	
		actividad=0;
		if( lon_rest != null && lat_rest !=null)
			centrarRestaurant();
			
		if(periodico=="reforma"){
			showTrafico();	
			clienteCIDE();
		}
		else if(periodico=="norte"){
			//showFedex();
			showFedexP();
		}
	}
	else
		actualizaDivMapa();	
}

function cargarMapaEstatico(){
		Map24.MapApplication.setStartMapView(  estado_iniMap[periodico]  );
		Map24.MapApplication.setAppletParameters({URL_GUIHELP: "javascript:showAyuda(contenidoMapAyuda);"});	
		Map24.MapApplication.init({ NodeName: 'divMapa', MapType: 'Static', SessionId: sesion });	
		conn = Map24.MapApplication.Map.WebServices.openConnection(); 	
		locc = Map24.MapApplication.Map.Local.openConnection();	
		startComponent("HAND");	
		showLayers([11899,12972,12828,12829,12830,12831,12832,12875,12876,12877,12878],false,false);
		modificar_barra();
		Map24.MapApplication.Map.addListener( "Map24.Event.MapClick", mapClicked );  	  	
		actividad=0;
		if(periodico=="reforma")
			showTrafico();
}

var flagAyuda = false;
var idHelp =  "idHelp";

function showAyuda(){
	if(!flagAyuda){
		///************ ActivityLog ***/
		activityLog(10,'Mostrar ayuda sobre el mapa');
		var cont='<div><img src="http://reforma.webmaps.com.mx/images/btns/ayudaMouse_'+periodico+'.gif" /></div>';	
		crearHtmlObj_C({vp:0, vh:0, id:idHelp, contenido:cont },true );
		flagAyuda=true;
	}
	else{
		showEnMapa( [idHelp],false,true);
		flagAyuda=false;
	}	
}



var n=0;
var cont=0;

var gpoTrafico="trafico";
arrIds[gpoTrafico]= new Array();
var urlSimboloTrafico="http://reforma.webmaps.com.mx/css/images/trafico/";

function showTrafico(){
	for(i=0; i<evtosTrafico.length; i++){
        var tooltraficoF=tooltrafico;
		evtosTrafico[i].idPto=evtosTrafico[i].id;
		evtosTrafico[i].arreglo=gpoTrafico;
		evtosTrafico[i].posicion=i;
		evtosTrafico[i].id=gpoTrafico+i;
        tooltraficoF=tooltraficoF.replace(/{descripcion}/g, evtosTrafico[i].descripcion);
		evtosTrafico[i].descripcion=reemplazar_acentos(evtosTrafico[i].categoria);
		evtosTrafico[i].simbolo=urlSimboloTrafico+(evtosTrafico[i].imagen.replace(/png/g,'gif'));  
        tooltraficoF=tooltraficoF.replace(/{imagenlogo}/g, evtosTrafico[i].imagen);	
        tooltraficoF=tooltraficoF.replace(/{categoria}/g, evtosTrafico[i].descripcion);	
     	tooltraficoF=tooltraficoF.replace(/{titulo}/g,evtosTrafico[i].titulo);
        tooltraficoF=tooltraficoF.replace(/{inicia}/g, evtosTrafico[i].inicia);	
	    tooltraficoF=tooltraficoF.replace(/{direccion}/g, evtosTrafico[i].direccion);
	    tooltraficoF=tooltraficoF.replace(/{comentario}/g, evtosTrafico[i].comentario);	
	    
        evtosTrafico[i].contenido=tooltraficoF;
	}
	crearLocationsGroup( evtosTrafico, 2, false, false );
	
	contenido=tooltipTrafico.replace(/{NUMERO}/g, "022");	
	contenido=contenido.replace(/{EVENTO}/g, false);
	info={vp:0, vh:79, id:"trafico_on", contenido: contenido };	
	crearHtmlObj_C(info,true);
	
	var contenido=tooltipTrafico.replace(/{NUMERO}/g, "02");
	contenido=contenido.replace(/{EVENTO}/g, true);
	var info={vp:0, vh:79, id:"trafico_off", contenido: contenido };	
	crearHtmlObj_C(info,true);	
}


function showTraficLoc(op){
	if(op){
		showEnMapa(["trafico_on","trafico"],true, true);
		showEnMapa(["trafico_off"],false, true);
		///************ ActivityLog ***/
		activityLog(8,'Ver trafico');
	}
	else{
		showEnMapa(["trafico_off"],true, true);
		showEnMapa(["trafico_on","trafico"],false, true);
	}
}


function onError(){ 
	alert("An Error Occured!" ) ; 
};
 
function onTimeout(){ 
	alert("Error al conectarse con el mapa, actualiza la p?gina e intenta de nuevo");
};
  
/**********************************************************************************************
						METODOS PARA EJERCICIOS INTERMEDIOS
***********************************************************************************************/
/***		LISTENER RATON		***/
function mapClicked( e ){	
	if( e.Button == e.RIGHT_BUTTON){
	   if(flagBn)
	      hideFedex();
	   var lat=e.Coordinate.Latitude;
	   var lon=e.Coordinate.Longitude;
	   e.stop;
	   flagGrupo=gpoMan;
	   reverseGeocode(lon,lat);
	}
}


/***		DIFERENCIAR DE QUE ARREGLO SE VA AGREGAR EL PUNTO		***/

var imgIniDes = [	{est:false,img:'',nombre:''}	,	{est:false,img:'',nombre:''}	];
		
function obtenerPto(posicion,arreglo,indicador){
	if(sec == 'b'){
		$("#opcion_ruta").attr("checked", true);
		tipoBusqueda('r');
		$("#txtDestino").focus();
	}
	if(!estatusOpcionesRuta){
		$("#divBuscar_Opciones").slideToggle(800);
		estatusOpcionesRuta = true;
	}
	
	switch(arreglo){
		case "origenes":{
			if(posicion!=-1){ orDef = true;	invertir_imagen(0,true);	
				var arrTmp=arrResp2[0];
				if( agregarPto( arrTmp[posicion],indicador ) != false ){	reiniciaRut(0);
					$("#divBuscar_Opciones_marco_po").html("<p>" + $("#" + arreglo + "_" + posicion).html() + "</p>");
					if(estatusOrigenes)
						muestra_origenes();
					$("#txtOrigen").focus();
					$("#txtOrigen").val(arrTmp[posicion].calle+", "+arrTmp[posicion].colonia+", "+arrTmp[posicion].cp);
					if(desDef)
						calcula();
					else
						$("#txtDestino").focus();
				}
				if(	(arrTmp[posicion].interes != "") && typeof(arrTmp[posicion].interes) != "undefined" )
						imgIniDes[0] = {est:true,img:"<img src='http://reforma.webmaps.com.mx/css/images/map24_iconos/"+arrTmp[posicion].typePOI+".png' />",nombre:arrTmp[posicion].interes};
			}
			break;
		}			
		case "destinos":{	desDef = true;	invertir_imagen(1,true);
			if(indicador!=-1){
				var arrTmp=arrResp2[1];
				if( agregarPto( arrTmp[posicion],indicador ) != false ){	reiniciaRut(1);
					$("#divBuscar_Opciones_marco_pd").html("<p>" + $("#" + arreglo + "_" + posicion).html() + "</p>");
					if(estatusDestinos)
						muestra_destinos();
					$("#txtDestino").focus();
					$("#txtDestino").val(arrTmp[posicion].calle+", "+arrTmp[posicion].colonia+", "+arrTmp[posicion].cp);
					if(orDef)
						calcula();
					else
						$("#txtOrigen").focus();
				}
				if(	(arrTmp[posicion].interes != "") && typeof(arrTmp[posicion].interes) != "undefined" )
						imgIniDes[1] = {est:true,img:"<img src='http://reforma.webmaps.com.mx/css/images/map24_iconos/"+arrTmp[posicion].typePOI+".png' />",nombre:arrTmp[posicion].interes};
			}
			break;
		}
		case "manual":{
			agregarPto( arrPtos[posicion],indicador );
				var cad_dir = "<p>"+arrPtos[posicion].calle+", "+arrPtos[posicion].colonia+", "+arrPtos[posicion].cp+", "+arrPtos[posicion].municipio+", "+arrPtos[posicion].estado+"</p>";
				removeEnMapa([arreglo+posicion],true);
				switch(indicador){
					case 0:{ orDef = true; 		reiniciaRut(0);
						if(estatusOrigenes)
							muestra_origenes();
						$("#divBuscar_Opciones_marco_po").html(cad_dir);	invertir_imagen(0,true);
						$("#txtOrigen").focus();
						$("#txtOrigen").val(arrPtos[posicion].calle+", "+arrPtos[posicion].colonia+", "+arrPtos[posicion].cp+", "+arrPtos[posicion].municipio+", "+arrPtos[posicion].estado);
						orDef = true;
						if(desDef)
							calcula();
						else
							$("#txtDestino").focus();
					break;
					}
					case 1:{ desDef = true;			reiniciaRut(1);
						if(estatusDestinos)
							muestra_destinos();
						$("#divBuscar_Opciones_marco_pd").html(cad_dir);	invertir_imagen(1,true);
						$("#txtDestino").focus();
						$("#txtDestino").val(arrPtos[posicion].calle+", "+arrPtos[posicion].colonia+", "+arrPtos[posicion].cp+", "+arrPtos[posicion].municipio+", "+arrPtos[posicion].estado);
						desDef = true;
						if(orDef)
							calcula();
						else
							$("#txtOrigen").focus();
					break;
					}
				}
			break;	
		}
		case "fedex":{
			agregarPto(ptosFedex[periodico],indicador);
				var cad_dir = "<p>"+ptosFedex[periodico].calle+", "+ptosFedex[periodico].colonia+", "+ptosFedex[periodico].cp+", "+ptosFedex[periodico].municipio+", "+ptosFedex[periodico].estado+"</p>";
				desDef = true; des = true;			reiniciaRut(1);
				/*if(estatusDestinos)
					muestra_destinos();*/
				$("#divBuscar_Opciones_marco_pd").html(cad_dir);	invertir_imagen(1,true);
				$("#txtDestino").focus();
				$("#txtDestino").val(ptosFedex[periodico].calle+", "+ptosFedex[periodico].colonia+", "+ptosFedex[periodico].cp+", "+ptosFedex[periodico].municipio+", "+ptosFedex[periodico].estado);
				desDef = true;
				if(orDef)
					calcula();
				else
					$("#txtOrigen").focus();
		}
	}
}


/***				***/
function obtenerContenido(info){
	if( (info.interes != "") && typeof(info.interes) != "undefined" ){ 
		switch( info.arreglo){
			case "manual":		{ crearTooltipPOI( info,getContentTooltipPOI()); break;}
			case "origenes":	{ crearTooltipPOI( info,getContentTooltipPOI()); break;}
			case "destinos":	{ crearTooltipPOI( info,getContentTooltipPOI()); break;}
			case "busqueda":	{ crearTooltipPOI( info,getContentTooltipPOI()); break;}
		}
	}
	else{
		switch( info.arreglo){
			case "manual":		{ crearTooltip( info,getContentTooltipP()); break;}
			case "origenes":	{ crearTooltip( info,getContentTooltipP()); break;}
			case "destinos":	{ crearTooltip( info,getContentTooltipP()); break;}
			case "busqueda":	{ crearTooltip( info,getContentTooltipP()); break;}
		}
	}
}

function crearTooltip(info, tooltip){
	var contenido=tooltip;
	contenido=contenido.replace(/{CALLE}/g, info.calle);
	contenido=contenido.replace(/{COLONIA}/g, info.colonia);
	contenido=contenido.replace(/{MUNICIPIO}/g, info.municipio);
	contenido=contenido.replace(/{CP}/g, info.cp);
	contenido=contenido.replace(/{ESTADO}/g, info.estado);
	contenido=contenido.replace(/{POSICION}/g, info.posicion);
	contenido=contenido.replace(/{ARREGLO}/g, info.arreglo);	
	info.contenido=contenido;
}
 
function crearTooltipPOI(info, tooltip){
	var contenido=tooltip;
	contenido=contenido.replace(/{IMAGEN}/g, '<img style="margin-top:2px;" src="http://reforma.webmaps.com.mx/css/images/map24_iconos/'+info.typePOI+'.png" border="0" />');
	contenido=contenido.replace(/{INTERES}/g, info.interes);
	contenido=contenido.replace(/{CALLE}/g, info.calle);
	contenido=contenido.replace(/{COLONIA}/g, info.colonia);
	contenido=contenido.replace(/{MUNICIPIO}/g, info.municipio);
	contenido=contenido.replace(/{CP}/g, info.cp);
	contenido=contenido.replace(/{ESTADO}/g, info.estado);
	contenido=contenido.replace(/{POSICION}/g, info.posicion);
	contenido=contenido.replace(/{ARREGLO}/g, info.arreglo);	
	info.contenido=contenido;
}

function reemplazar_acentos(cadena){
	cadena=cadena.replace(/&aacute;/g,"á");
	cadena=cadena.replace(/&eacute;/g,"é");
	cadena=cadena.replace(/&iacute;/g,"í");
	cadena=cadena.replace(/&oacute;/g,"ó");
	cadena=cadena.replace(/&uacute;/g,"ú");
	cadena=cadena.replace(/&ntilde;/g,"ñ");
	cadena=cadena.replace(/&Aacute;/g,"Á");
	cadena=cadena.replace(/&Eacute;/g,"É");
	cadena=cadena.replace(/&Iacute;/g,"Í");
	cadena=cadena.replace(/&Oacute;/g,"Ó");
	cadena=cadena.replace(/&Uacute;/g,"Ú");
	cadena=cadena.replace(/&Ntilde;/g,"N");
	cadena=cadena.replace(/&ñtilde;/g,"n");
	cadena=cadena.replace(/&/g," ");
	return cadena;
  }


function setTipoRuta(){
	modo=this.value;
	if(arrRuta[0] != null && arrRuta[1] != null ){
		borrarLineaRuta();
		calcularRuta();
	}
	///************ ActivityLog ***/
	activityLog(14,'Cambiar tipo de ruta');
}


var idClientTmp="";
var flagMostrarCl=false;

resReverseGeocode= function(dir){
	switch(flagGrupo){
		case gpoMan:{
			dir.arreglo=gpoMan;
			dir.posicion=arrPtos.length;
			dir.id=gpoMan+arrPtos.length;
			arrPtos.push(dir);
			addGroupLocation(dir,2);
			///************ ActivityLog ***/
			activityLog(9,'Clic derecho sobre el mapa');
			break;
		}
	}
}

actualizaDivMapa = function(){
	$("#loadingMapa").html("<div style='margin:0px auto; padding:0px; width:344px;'><div style='width:344px;'><img src='http://dev.webmaps.com.mx/vistas/XHTML/tooltips_proyectos/webmaps/Images/load_new_01.png' /></div><div style='background-image:url(http://dev.webmaps.com.mx/vistas/XHTML/tooltips_proyectos/webmaps/Images/load_new_02.png); width:344px;  height:46px;' ><div style='margin:0px 10px 2px 10px; font-family:Arial, Helvetica, sans-serif; font-size:11px; color:#990000; text-align:center;'>Para ver el mapa interactivo debes tener Java&#8482; instalado<br />Para descargarlo da clic <a href='http://www.java.com/es/download/' target='_blank' title='Descargar Java&#8482;' style='color:#0066CC; text-decoration:none;'>aquí</a><br /><br />Si tienes Internet Explorer 8 verifica que tengas la <i>Vista de Compatibilidad</i> habilitada.<br /><img src='http://dev.vedirecto.com.mx/css/images/compatible.png' /><br /><br />Para ver el mapa con funcionalidad limitada da clic <a href='#' title='Ver mapa estático' style='color:#0066CC; text-decoration:none;' onclick='cargarMapaEstatico();'>aquí</a></div></div></div>");
}

showLayerInfo = function(){
	crearHtmlObj_C( {vp:5.5, vh:5, id:"layerInfo", contenido: toolLayer } ,true);
}


var flagBn = true;
var ptosFedex = new Array();
var gpoFedex = 'fedex';
arrIds[gpoFedex] = new Array();
ptosFedex['norte'] = {longitude:-6022.95166015625,
					  latitude:1539.268798828125,
					  calle:'Vasconcelos 465 Pte. Local 14',
					  colonia:'Del Valle',
					  cp:'',
					  municipio:'San Pedro Garza, Garcia',
					  estado:'Nuevo León',
					  id:'ptoFedex',
					  simbolo:'http://reforma.webmaps.com.mx/css/images/locacion2.png',
					  contenido:''
};
ptosFedex['mural'] = {longitude:-6022.95166015625,
					  latitude:1539.268798828125,
					  calle:'Vasconcelos 465 Pte. Local 14',
					  colonia:'Del Valle',
					  cp:'',
					  municipio:'San Pedro Garza, Garcia',
					  estado:'Nuevo León',
					  id:'ptoFedex',
					  simbolo:'http://reforma.webmaps.com.mx/css/images/locacion2.png',
					  contenido:''
};
						
showFedex = function(){
	crearHtmlObj_C( {vp:7.5, vh:11, id:"bannerFedex", contenido: bannerFedex } ,true);
	flagBn = true;
}

hideFedex = function(){
	removeEnMapa(['bannerFedex'],true);
	flagBn = false;
}

showFedexP = function(){
	toolFedex = toolFedex.replace(/{destino}/g,'<img title=\'destino\' onclick=\'addFedesR(1);\' src=\"http://reforma.webmaps.com.mx/css/images/tooltip/destino.gif\" />');
	toolFedex = toolFedex.replace(/&iacute;/g,'í');
	toolFedex = toolFedex.replace(/&oacute;/g,'ó');
	ptosFedex[periodico].contenido =toolFedex;
	maxVisibilidadLoc=5;
	crearTooltipLocation(ptosFedex[periodico],true);
	maxVisibilidadLoc=300;
}

centrarPFedex = function(){
	hideFedex();
	zoom(ptosFedex[periodico].longitude, ptosFedex[periodico].latitude,150);
	showTooltip(ptosFedex[periodico],true);
}

addFedesR = function(pos){
	if(arrRuta[0] != null){
		if((arrRuta[0].longitude==ptosFedex[periodico].longitude) && (arrRuta[0].latitude==ptosFedex[periodico].latitude)){
			alert('Este punto ya fue agregado');
			return;
		}
	}
	if(arrRuta[1] != null){
		if((arrRuta[1].longitude==ptosFedex[periodico].longitude) && (arrRuta[1].latitude==ptosFedex[periodico].latitude)){
			alert('Este punto ya fue agregado');
				return;
		}
	}										
	showTooltip(ptosFedex[periodico],true);									
	showEnMapa( [idTooltip], false,true);
	
	obtenerPto(0,gpoFedex,pos);
}
