var httpo = null;
var httpd = null;
var sMode = 'r';
var tx_cpde, tx_cpor;
var lato;
var latd;
var lono;
var lond;
var truta;
var Loca, Prov, NomVia, NumVia, TpVia;
var	provor, provde;
var origen;
var destino;
var resultsOrigen;
var ready = false;
var nohaymult;
var oAddrFields, dAddrFields;
//var tx_busq_origen,tx_busq_destino
//NUEVA FUNCIÓN PARA ENVIAR LOS DATOS DE LA BÚSQUEDA DE DIRECCIÓN

function envio_planos_ruta(tipo, m_origen, m_lato, m_lono, m_destino, m_latd, m_lond, pie_coche)
{	
truta=pie_coche;
	if(((m_lato)&&(m_lono))&&((m_latd)&&(m_lond))) {
		var finalpage = '/vemaps/mapa.asp?lator=';
		finalpage += m_lato + '&lonor=' + m_lono + '&l1or=' + m_origen + '&latde=' + m_latd + '&londe=' + m_lond + '&l1de=' + m_destino +'&mode=r' + '&tx_busq_origen='+ origen + '&tx_busq_destino='+ destino;
		var loc = window.top.location.toString();
		if(parent.fusion){
	
			parent.esperar_carga("r", "", "", "", "", "", "", "", "", "",m_origen,m_lato,m_lono,m_destino,m_latd,m_lond, "", "", origen, destino, pie_coche);	
		}
		else {
			top.document.location.href = finalpage;
		}		
	}
	else {
		origen=m_origen;
		destino=m_destino;
		origen = origen.replace(/^(\s|\&nbsp;)*|(\s|\&nbsp;)*$/g,"");
		destino = destino.replace(/^(\s|\&nbsp;)*|(\s|\&nbsp;)*$/g,"");
		var url;
		if ((origen=='') || (destino==''))
		{
			alert("Los campos Provincia, Ciudad y Nombre de la Via son Obligatorios.");
		}
		else
		{
			if(parent.fusion){
			parent.busquedaUnica(true, origen, "", "", "o");
			}else{
			top.document.location.href='/vemaps/mapa.asp?cuo=' + origen + '&cud=' + destino +'&mode=r'
			}
			//parent.getRuta(true, origen, destino, pie_coche);
	    }
		return;
	}
}
function cargaRutaOrigen(results) {
	resultsOrigen = results;
	parent.busquedaUnica(true, destino, "", "", "d");
}
function fallo() 
{
	//boton_reloj(0);
	if (g_sMostrarAlert == "true")
	{
		
		//alert("Se ha producido un error en la comunicación con el servidor. Inténtalo un poco más adelante.");
	}
}
	
	function cargaRutaDestino(resultsDestino)
	{
		try
		{
			var sCadena;
			if (resultsOrigen.length >1){
				if (resultsDestino.length >1){	
					sCadena = "multiple=-3"; 
					sCadena = sCadena + "&cuo=" + origen;
					sCadena = sCadena + "&cud=" + destino;
				}
				else {
					sCadena = "multiple=-1";
					sCadena = sCadena + "&cuo=" + origen;
					sCadena = sCadena + "&l1d=" + resultsDestino[0].formatted_address;
					sCadena = sCadena + "&latd=" + resultsDestino[0].geometry.location.lat();
					sCadena = sCadena + "&lond=" + resultsDestino[0].geometry.location.lng();
					
				}
			}
			else {
				if (resultsDestino.length >1){	
					sCadena = "multiple=-2"; 
					sCadena = sCadena + "&cud=" + destino;
					sCadena = sCadena + "&l1o=" + resultsOrigen[0].formatted_address;
					sCadena = sCadena + "&lato=" + resultsOrigen[0].geometry.location.lat();
					sCadena = sCadena + "&lono=" + resultsOrigen[0].geometry.location.lng();
				}
				else { nohaymult=true; }
			}
			var tx_tipovia = "";
			var tx_calle = "";
			var tx_loca = "";
			var tx_cp = "";
			var tx_lat = "";
			var tx_lon = "";					
			var tx_prov = "";
			var okfilter;
			var item;
			if (resultsOrigen.length >1){
				item = resultsOrigen;
				for (i = 0;i<item.length;i++) {
					okfilter = true;
					tx_tipovia = "";
					tx_calle = "";
					tx_loca = "";
					tx_cp = "";
					tx_lat = "";
					tx_lon = "";					
					tx_prov = "";
					for (var j = 0; j < item[i].address_components.length; j++) {
						switch (item[i].address_components[j].types[0]) {
							/*	case 'street_number':
							numvia = item[i].address_components[j].long_name;
							break;*/
							case 'route':
								var direccion = item[i].address_components[j].long_name;
								var dir = direccion.split(' ')
								tx_tipovia = dir[0];
								for (var l = 1; l < dir.length; l++) {
									tx_calle = tx_calle + " " + dir[l];
								}
								break;
							case 'locality':
								tx_loca = item[i].address_components[j].long_name;
								break;
							/*case 'administrative_area_level_2':
								tx_prov = item[i].address_components[j].long_name;
								break;*/
							/*case 'administrative_area_level_1':
								comunidad = item[i].address_components[j].long_name;
								break;*/
							case 'country':
								if (item[i].address_components[j].long_name!="Espa\xF1a") { okfilter=false; }
								break;
							case 'postal_code':
								tx_cp = item[i].address_components[j].long_name;
								break;
							}
											
					}			
					if (okfilter) {
						tx_lat = item[i].geometry.location.lat();
						tx_lon = item[i].geometry.location.lng();
						sCadena = sCadena + "&To" + i + "=" + tx_tipovia + "&Co" + i + "=" +  tx_calle + "&Po" + i + "=" + tx_cp + "&lato" + i + "=" + tx_lat + "&lono" + i + "=" + tx_lon + "&provo" + i + "=" + tx_prov + "&locao" + i + "=" + tx_loca + '&tx_busq_origen='+ origen + '&tx_destino='+ destino;
					
					}
				}			
			}
			if (resultsDestino.length >1){
				item = resultsDestino;
				for (i = 0;i<item.length;i++) {
					okfilter = true;
					tx_tipovia = "";
					tx_calle = "";
					tx_loca = "";
					tx_cp = "";
					tx_lat = "";
					tx_lon = "";					
					tx_prov = "";
					for (var j = 0; j < item[i].address_components.length; j++) {
						switch (item[i].address_components[j].types[0]) {
						/*	case 'street_number':
								numvia = item[i].address_components[j].long_name;
								break;*/
							case 'route':
								var direccion = item[i].address_components[j].long_name;
								var dir = direccion.split(' ')
								tx_tipovia = dir[0];
								for (var l = 1; l < dir.length; l++) {
									tx_calle = tx_calle + " " + dir[l];
								}
								break;
							case 'locality':
								tx_loca = item[i].address_components[j].long_name;
								break;
							/*case 'administrative_area_level_2':
								tx_prov = item[i].address_components[j].long_name;
								break;*/
							/*case 'administrative_area_level_1':
								comunidad = item[i].address_components[j].long_name;
								break;*/
							case 'country':
								if (item[i].address_components[j].long_name!="Espa\xF1a") { okfilter=false; }
								break;
							case 'postal_code':
								tx_cp = item[i].address_components[j].long_name;
								break;
						}
						
					}			
					if (okfilter) {
						tx_lat = item[i].geometry.location.lat();
						tx_lon = item[i].geometry.location.lng();
						sCadena = sCadena + "&Td" + i + "=" + tx_tipovia + "&Cd" + i + "=" +  tx_calle + "&Pd" + i + "=" + tx_cp + "&latd" + i + "=" + tx_lat + "&lond" + i + "=" + tx_lon + "&provd" + i + "=" + tx_prov + "&locad" + i + "=" + tx_loca + '&tx_busq_origen='+ origen + '&tx_destino='+ destino;
					}
				}
			}
			//ready = false;
			if (nohaymult!=true) { 
				tb_show('M&uacute;ltiples Resultados', '/iframes/multiples.asp?'+sCadena+'&keepThis=true&TB_iframe=true&height=400&width=400', '') 
			}
			else {
				oAddrFields = getAddressFields( resultsOrigen[0] );
				dAddrFields = getAddressFields( resultsDestino[0] );
				lato = oAddrFields.lat;
				lono = oAddrFields.lng;
				l1o  = oAddrFields.formattedAddress;
				latd = dAddrFields.lat;
				lond = dAddrFields.lng;
				l1d  = dAddrFields.formattedAddress;
				if (parent.document.getElementById("iframeMapaContent")) { parent.document.getElementById("iframeMapaContent").contentWindow.g_sL1o = l1o; }
				if (parent.document.getElementById("iframeMapaContent")) { parent.document.getElementById("iframeMapaContent").contentWindow.g_sL1d = l1d; }
				if (parent.document.getElementById("iframeMapaContent")) { parent.document.getElementById("iframeMapaContent").contentWindow.g_sLator = lato; }
				if (parent.document.getElementById("iframeMapaContent")) { parent.document.getElementById("iframeMapaContent").contentWindow.g_sLonor = lono; }
				if (parent.document.getElementById("iframeMapaContent")) { parent.document.getElementById("iframeMapaContent").contentWindow.g_sLatde = latd; }
				if (parent.document.getElementById("iframeMapaContent")) { parent.document.getElementById("iframeMapaContent").contentWindow.g_sLonde = lond; }
				var finalpage = '/vemaps/mapa.asp?lator=';
				finalpage += lato + '&lonor=' + lono + '&l1or=' + l1o + '&latde=' + latd + '&londe=' + lond + '&l1de=' + l1d +'&mode=r' + '&tx_busq_origen='+ origen + '&tx_busq_destino='+ destino;
				var loc = window.top.location.toString();
				var eventos = [];
				var ev;
				
				ev = {name: "YellPageView",
					seccion: "Mapas", 
					server: parent.g_nombreServ,
					site: "Callejero",
					userIp: parent.g_ipUsuario };
				if (l1o + l1d) ev.nombrePag  = l1o + " - " + l1d;
				eventos.push(ev);

				ev = { name: "YellSearch" };
				if (l1o + l1d) ev.direccion = l1o + " - " + l1d;
				ev.enCocheAPie = truta;
				eventos.push(ev);

				ev = { name: "YellResults" };
				ev.resultado = YellEvent.RESULT_MAP;
				ev.id = null;
				ev.mode = "BRUT";
				eventos.push(ev);

				ev = { name: "YellInterpreter" };
				ev.id = null;
				ev.city =         ( oAddrFields.locality     || "" ) + "-" + ( dAddrFields.locality     || "" );
				ev.province =     ( oAddrFields.province     || "" ) + "-" + ( dAddrFields.province     || "" );
				ev.streetName =   ( oAddrFields.route        || "" ) + "-" + ( dAddrFields.route        || "" );
				ev.streetNumber = ( oAddrFields.streetNumber || "" ) + "-" + ( dAddrFields.streetNumber || "" );
				eventos.push(ev);
						
				sendOmnitureEvents( eventos );
				if(parent.fusion){
					parent.esperar_carga("r", "", "", "", "", "", "", "", "", "",l1o,lato,lono,l1d,latd,lond, "", "", origen, destino, truta);
					
				}
				else {
					top.document.location.href = finalpage;
				}
			}
		}
		catch(e)
		{
			var eventos = [];
			var ev;
			ev = { name: "YellSearch" };
			ev.direccion = origen + destino;
			ev.enCocheAPie = truta;
			eventos.push(ev);

			ev = { name: "YellResults" };
			ev.resultado = YellEvent.RESULT_NEGATIVE;
			ev.id = null;
			eventos.push(ev);

			sendOmnitureEvents( eventos );
			if(parent.fusion){
			alert("No se encuentra resultado para esta ruta");
			}
			//boton_reloj(0);
			//if (g_sMostrarAlert == "true")
			//{
			//	for (atributo in e) alert("origen[" + atributo + "] = " + e[atributo]);
			//}
		}
	}
	
	function getAddressFields( googleResult ) {
		var result = {};
		var componentValue;
		result.formattedAddress = googleResult.formatted_address;
		result.lat = googleResult.geometry.location.lat();
		result.lng = googleResult.geometry.location.lng();
		
		for (var j = 0; j < googleResult.address_components.length; j++) {
			componentValue = googleResult.address_components[j].long_name;
			switch (googleResult.address_components[j].types[0]) {
				case 'street_number':
					result.streetNumber = componentValue;
					break;
				case 'route':
					result.route = componentValue;
					var dir = result.route.split(' ')
					var calle = "";
					for (var l = 1; l < dir.length; l++) {
						calle = calle + " " + dir[l];
					}
					result.streetType = dir[0];
					result.streetName = calle;
					break;
				case 'locality':
					result.locality = componentValue;
					break;
				case 'administrative_area_level_2':
					result.province = componentValue;
					break;
				case 'administrative_area_level_1':
					result.community = componentValue;
					break;
				case 'country':
					result.country = componentValue;
					break;
				case 'postal_code':
					result.postalCode = componentValue;
					break;
			}
		}
		return result;
	}
