/**
 * Config.inc.js
 */
/**/
var INCLUDE_LAST_ROUTE = false;
var LINE_WEIGHT = 3;
var LINE_COLOR = '#ff00ff';
var PRINT_DISTANCES = false;

/**
 * GMapsInitialize.js
 */
/**/

function initialize(address, idregionparent) {
	
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map_canvas"));
		var geocoder = new GClientGeocoder();
		
		if (address == null) {
			var address = "Espa&ntilde;a";
		} else {
			var address = address;
		}
		if (idregionparent != null) {
			if (idregionparent == 0) {
				var zoom = 3;
			} else {
				var zoom = 5
			}
		} else {
			var zoom = 3;
		}
		
		geocoder.getLatLng(
			address,
			function(point) {
				if (!point) {
					alert(address + " no encontrada!");
				} else {
					map.setCenter(point, zoom);
					
				}
			}
		);
	}
}

function centerMap(map, latlng){
		// Calculamos el autocentro y autozoom
		var latlngbounds = new GLatLngBounds( );
		for ( var i = 0; i < latlng.length; i++ )
		{
			alert(latlng[ i ]);
			latlngbounds.extend( latlng[ i ] );
			
		}
		
		// Asignamos al centro los valores calculados y el zoom
		map.setCenter( latlngbounds.getCenter( ), map.getBoundsZoomLevel( latlngbounds )-1 );
	}
	
	
	
/**
 * Start.js
 */
/**/




function initialize(map_canvas, center, zoom) {
	if (GBrowserIsCompatible()) {
		var map = new GMap2(document.getElementById(map_canvas));
		map.setCenter( new GLatLng( 0, 0 ), 0 );
		
		map.addControl(new GSmallMapControl());
	    map.addControl(new GMapTypeControl());
		map.setMapType(G_PHYSICAL_MAP);

		return map;
	}
}


function initializeNoPoint(map_canvas, center, zoom) {
	if (GBrowserIsCompatible()) {
		var map = new GMap2(document.getElementById(map_canvas));
		map.setCenter( new GLatLng( 0, 0 ), 0 );
		
		map.addControl(new GSmallMapControl());
	    map.addControl(new GMapTypeControl());
		map.setMapType(G_PHYSICAL_MAP);
		
		if (center != null) {
			if (zoom == null) {
				zoom = 2;
			}
			map.setCenter(new GLatLng(center.Latitude, center.Longitude), zoom);
		}

		
		return map;
	}
}

/**
 * Markers.js
 */
/**/
function setMarkers(map, list) {
	var total = list.length;
	var latlng = new Array(total);

	var baseIcon = new GIcon();
	baseIcon.iconSize = new GSize(24, 34);
	baseIcon.shadowSize = new GSize(0, 0);
	baseIcon.iconAnchor = new GPoint(11, 35);

	var latlngbounds = new GLatLngBounds( );
	for (var i = 0; i < total; i++) {
		lat = list[i].Latitude;
		lng = list[i].Longitude;
		var point = new GLatLng(lat, lng);
		latlng[i]  = new GLatLng(lat, lng);
		baseIcon.image = "images/iconos/gmap_"+ (i+1) +".png";
		/*
		var marker = new GMarker(point);
		map.addOverlay(marker);
		*/
		createMarker(map, point, list[i].Name, baseIcon);
		
		latlngbounds.extend( point );
	}

	
		
		// Asignamos al centro los valores calculados y el zoom
	map.setCenter( latlngbounds.getCenter( ), map.getBoundsZoomLevel( latlngbounds ) - 1 );
}

function setMarkersViajeDia(map, list) {
	var total = list.length;
	var latlng = new Array(total);
	
	var baseIcon = new GIcon();
	baseIcon.iconSize = new GSize(24, 34);
	baseIcon.shadowSize = new GSize(0, 0);
	baseIcon.iconAnchor = new GPoint(11, 35);
	/*baseIcon.infoWindowAnchor = new GPoint(9, 2);
	baseIcon.infoShadowAnchor = new GPoint(18, 25);*/

	var	latIni = list[0].Latitude;
	var lngIni = list[0].Longitude;
	
	
	for (var i = 0; i < total; i++) {
		lat = list[i].Latitude;
		lng = list[i].Longitude;
		if(i>0){
			
			baseIcon.image = "images/iconos/gmap_"+ (i) +".png";
			var point = new GLatLng(lat, lng);
			var marker = new GMarker( point, {icon:baseIcon } );
			map.addOverlay( marker );
			
			//var p1 = new GLatLng(latIni, lngIni);
			//var p2 = new GLatLng(lat, lng);
			//var polyline = new GPolyline([p1, p2], '#ff00ff', 3);
			//map.addOverlay(polyline);
			//alert(latIni + " " +lngIni );
			//alert(lat + " " + lng);
			var polyline = new GPolyline([
			  new GLatLng(latIni, lngIni),
			  new GLatLng(lat, lng)
			], "#ff00ff", 3);
			map.addOverlay(polyline);
			}
		
		latlng[i]  = new GLatLng(lat, lng);
		/*
		var marker = new GMarker(point);
		map.addOverlay(marker);
		*/
		
	}
	
	var latlngbounds = new GLatLngBounds( );
	for ( var i = 0; i < latlng.length; i++ )
	{
		
		latlngbounds.extend( latlng[ i ] );
		
	}
		
		// Asignamos al centro los valores calculados y el zoom
	map.setCenter( latlngbounds.getCenter( ), map.getBoundsZoomLevel( latlngbounds ) );
	//centerMap(map,latlng);
}


function createMarker(map, point, msg, baseIcon) {
	var marker = new GMarker(point,  {icon:baseIcon });
	map.addOverlay(marker);
	GEvent.addListener(marker, "click", function() {
		map.openInfoWindowHtml(point, msg);
	});
}

// home markers
function setHomeMarkers(map, list) {
	
	var total = list.length;
	var latlng = new Array(total);
	var latlngbounds = new GLatLngBounds( );
	for (var i = 0; i < total; i++) {
		lat = list[i].Latitude;
		lng = list[i].Longitude;
		var point = new GLatLng(lat, lng);
		//createHomeMarker(map, point, list[i], i+1);
		//latlng[i]  = new GLatLng(lat, lng);

		var codPais = list[i].CodPais ;
		var coordenadas = country[codPais].coord;
	//alert(coordenadas.length);
		for (j=0; j<coordenadas.length; j++){
		   var poligono = new GPolygon(coordenadas[j],list[i].Color, 2, 0.7, list[i].Color, 0.4);
		    createPolygonEvent(map, poligono, list[i]);
			//latlng[j]  = coordenadas[j];
			//latlngbounds.extend( coordenadas[j] );


			for(h=0;h<coordenadas[j].length;h++){	
				latlngbounds.extend( coordenadas[j][h] );
			}
		}
		
		//latlngbounds.extend( latlng[ i ] );
	}
	

		// Asignamos al centro los valores calculados y el zoom
	map.setCenter( latlngbounds.getCenter( ), map.getBoundsZoomLevel( latlngbounds ) );
	//centerMap(map,latlng);
}

function createPolygonEvent(map, poligono, region){
		   
		GEvent.addListener(poligono, "click", function() {
			window.location.href = region.IDRegion + "-" + permalink(region.Name.toLowerCase())  + "/routes/"  ;
		});	   
		map.addOverlay(poligono);
		
	}
	
function createHomeMarker(map, point, region, num) {
	var baseIcon = new GIcon();
	baseIcon.iconSize = new GSize(24, 34);
	baseIcon.shadowSize = new GSize(0, 0);
	baseIcon.iconAnchor = new GPoint(11, 35);
	baseIcon.image = "images/iconos/gmap_"+ (num) +".png";

	var marker = new GMarker(point, {icon:baseIcon });
	map.addOverlay(marker);
	GEvent.addListener(marker, "click", function() {
		window.location.href = "index.php?section=routes&region=" + region.IDRegion;
	});
}

function setQueVerMarkers(map, list) {
	var total = list.length;
	
	for (var i = 0; i < total; i++) {
		//alert(list[i].Latitud);
		lat = list[i].Longitud;
		lng = list[i].Latitud;
		var point = new GLatLng(lat, lng);
		/*
		var marker = new GMarker(point);
		map.addOverlay(marker);
		*/
		createMarker(map, point, list[i].Name);
	}
	
}

/**
 * Routes.js
 */
/**/

// uses regions as a global javascript variable
function addDOMLocation(actual_selector, texto ) {
	//$(actual_selector).attr('disabled', 'disabled');
	
	var selectors = $('#selectors');
	if(texto == ""){
		texto = "Siguiente ciudad";
	}
	var selects = $('#selectors region-specials-fila');
	var inputs = $('#selectors input');
	var total_selects = selects.length;
	var total_inputs = inputs.length;
	
	var total = regions.length;
	var totalActual = parseInt(document.forms['fRoute'].totalpoint.value + 1);
	//alert(actualregion.IDRegion);
	var new_select = "";
	new_select += "<div class='region-list-fila'>";
	new_select += "<div class='region-list-fila-titulo'>"+ texto +"</div>";
	new_select += "<div class='region-list-fila-form'>";
	new_select += "<select id='l_0' onchange='addDOMLocation(this,\""+ texto +"\"); return false;'>";
	new_select += "<option value='0'>"+ texto +"</option>";
	for (var i = 0; i < total; i++) {
		children = regions[i].children;
		total_subregions = children.length;
		if(actualregion.IDRegion == regions[i].parent.IDRegion){
			new_select += "<optgroup label='" + regions[i].parent.Name + "'>";
			for (j = 0; j < total_subregions; j++) {
				new_select += "<option value='" + children[j].IDRegion + "'>" + children[j].Name + "</option>";
			}
			new_select += "</optgroup>";			
		}
	}
	for (var i = 0; i < total; i++) {
		children = regions[i].children;
		total_subregions = children.length;
		if(actualregion.IDRegion != regions[i].parent.IDRegion){
			new_select += "<optgroup label='" + regions[i].parent.Name + "'>";
			for (j = 0; j < total_subregions; j++) {
				new_select += "<option value='" + children[j].IDRegion + "'>" + children[j].Name + "</option>";
			}
			new_select += "</optgroup>";
		}
	}
	new_select += "</select><br />";
	new_select += "</div>";
	new_select += "</div>";
	selectors.append(new_select);
	
	var select_id = '#l_' + (total_selects);
	var idregion = actual_selector.value;
	var totalPoint = $('#totalpoint').val();
	totalPoint = parseInt(totalPoint)+1;
	var name = actual_selector.options[actual_selector.selectedIndex].text;
	//document.getElementById('allregion').value = document.getElementById('allregion').value + "l_"+ totalPoint + "-" + idregion + "@";
	document.getElementById('allregion').value = document.getElementById('allregion').value + idregion + "-"+ normalize(name) +"_";
	
	setRegionField(select_id, totalPoint, idregion, name);
	
}

function setRegionField(select_id, total, idregion, name) {
	var new_select = "";
	//total = total + 1;
//alert(name);
	new_select += "<select id='select-l_" + idregion +"-"+normalize(name) +"' onchange='editDOMLocation(this); return false;'>";
	/*new_select += "<option value='0'>Seleccionar ciudad</option>";*/
	for (var i = 0; i < regions.length; i++) {
		children = regions[i].children;
		total_subregions = children.length;
		
		new_select += "<optgroup label='" + regions[i].parent.Name + "'>";
		for (j = 0; j < total_subregions; j++) {
			if(idregion==children[j].IDRegion){
				new_select += "<option value='" + children[j].IDRegion + "' selected='selected'>" + children[j].Name + "</option>";
			}else
				new_select += "<option value='" + children[j].IDRegion + "'>" + children[j].Name + "</option>";
		}
		new_select += "</optgroup>";
	}
	new_select += "</select>";

	var new_input = new_select + "<input type='hidden' id='l_" + total + "' name='l_" + total + "' value='" + idregion +"' />";
	
	$("#selectors " + select_id).replaceWith(new_input);
	document.forms['fRoute'].totalpoint.value  = total;
	

}

function editDOMLocation(actual_selector){
		var idInput = actual_selector.id;
		idInput = idInput.split("_");
		var selIndex = actual_selector.selectedIndex;
		
		var allRegion = $('#allregion').val();
		var allRegionNew = allRegion.replace("_"+idInput[1]+"_","_"+actual_selector.value+"-"+ normalize(actual_selector.options[selIndex].text) +"_");
		document.getElementById('allregion').value = allRegionNew;
		
	}

function actualizarDireccion(){
	var start = $('#idregion_start :selected');
	var end = $('#idregion_end :selected');
	region_start = start.text();
	region_end = end.text();
	$('#region_start2').val(region_start);
	$('#region_end2').val(region_end);
	calculateDistance();
	}

function calculateDistance() {
	/*var start = $('#idregion_start :selected');
	var end = $('#idregion_end :selected');*/
	region_start = $('#region_start2').val();
	region_end = $('#region_end2').val();
	
	var d = $('#distance');
	
	// distance by road (aproximated)
	var gd = new GDirections();
	GEvent.addListener(gd, "load", function(g) {
		distance = g.getDistance().meters;
		
		d.val(distance);
	});

	gd.load("from: " + region_start + " to: " + region_end);

	
}

function getRouteHTML(idroute, idtransportation, link) {
	
	var d = new Date();
	var url = 'public/Routes/getHTMLByRoute.php?idroute=' + idroute + '&idtransportation=' + idtransportation + '&nocache='+ d.getMilliseconds() ;
	//alert(url);
 	 //$('#iframeID').contents().find('#someID').load(url);
//	var url = 'public/Routes/getHTMLByRoute.php?idroute=' + idroute + '&idtransportation=' + idtransportation + '&nocache='+ d.getMilliseconds() ;;
	//alert({idroute:idroute,idtransportation:idtransportation,nocahe: d.getMilliseconds()});
	$.post( "public/Routes/getHTMLByRoute.php", 
	   {idroute:idroute,idtransportation:idtransportation,nocahe: d.getMilliseconds()}, 
	   function(data){
		   //$('#iframeID').html( data );
		   $('#iframeID').contents().find('#someID').html(data);
		   alert("Ajax call complete.");
		   }
	);
	
	//$('#api-display').load(url);
	//$(link).addClass('actual');
/*	$('#route a').each(function(i) {
		if (this.id == link.id) {
			$(link).addClass('actual');
		} else {
			$(this).removeClass('actual');
		}
	});*/
}

/* Verificamos que se hayan seleccionado al menos dos rutas*/
function getTotalPoint(){
	if(document.forms['fRoute'].totalpoint.value <= 1){
		alert('Debe seleccionar otra ciudad');
		return false;
		}else{
			document.forms['fRoute'].submit();
			}
		return true;
	
	}



/**
 * Lines.js
 */
/**/
function setLines(map, list, addLast) {
	var ouputlayer = document.getElementById('route');
	
	if (addLast == undefined) {
		addLast = false;
	}
	var total = list.length;
	for (i = 0; i < total; i++) {
		k = i - 1;
		if (i == 0) {
			k = 0;
		}
		if (k != i) {
			p1 = new GLatLng(list[k].Latitude, list[k].Longitude);
			p2 = new GLatLng(list[i].Latitude, list[i].Longitude);
			var polyline = new GPolyline([p1, p2], LINE_COLOR, LINE_WEIGHT);
			map.addOverlay(polyline);
		}
	}
	
	// adds last line
	if (addLast) {
		p1 = new GLatLng(list[total - 1].Latitude, list[total - 1].Longitude);
		p2 = new GLatLng(list[0].Latitude, list[0].Longitude);
		var polyline = new GPolyline([p1, p2], LINE_COLOR, LINE_WEIGHT);
		map.addOverlay(polyline);
	}
	//alert(addLast);
}


function setLinesViajesDia(map, list, addLast) {
	var ouputlayer = document.getElementById('route');

	
	if (addLast == undefined) {
		addLast = false;
	}else{
		addLast = true;	
	}
	var total = list.length;
	for (i = 1; i < total; i++) {
		k = i - 1;
		if (i == 0) {
			k = 0;
		}
		if (k != i) {
			p1 = new GLatLng(list[0].Latitude, list[0].Longitude);
			p2 = new GLatLng(list[i].Latitude, list[i].Longitude);
			var polyline = new GPolyline([p1, p2], LINE_COLOR, LINE_WEIGHT);
			map.addOverlay(polyline);
		}
	}
	
	// adds last line
	if (addLast) {
		p1 = new GLatLng(list[total - 1].Latitude, list[total - 1].Longitude);
		p2 = new GLatLng(list[0].Latitude, list[0].Longitude);
		var polyline = new GPolyline([p1, p2], LINE_COLOR, LINE_WEIGHT);
		map.addOverlay(polyline);
	}

}

function setLinesMejoresViajes(map, data) {
	var ouputlayer = document.getElementById('route');
	

	var total = data.length;
	for (i = 0; i < total; i++) {
		k = i - 1;
		if (i == 0) {
			k = 0;
		}
		if (k != i) {
			p1 = data[k][0];
			p2 = data[i][0];
			var polyline = new GPolyline([p1, p2], LINE_COLOR, LINE_WEIGHT);
			map.addOverlay(polyline);
		}
	}
	

}

/**
 * QueVer.js
 */
/**/

/**
 * @name string
 * @returns Gmaps Point
 */
function initializeQueVer(map_canvas, latlng1, titulos, center) {
	if (GBrowserIsCompatible()) {
	
		// Iniciamos el mapa
		var map1 = new GMap2(document.getElementById(map_canvas));
		map1.setCenter( center , 16 );
		map1.setMapType(G_HYBRID_MAP);
		map1.addControl(new GSmallMapControl());
	    map1.addControl(new GMapTypeControl());
		
		// Cargamos la estructura base del icono
 		var baseIcon = new GIcon();
      	baseIcon.iconSize = new GSize(24, 34);
      	baseIcon.shadowSize = new GSize(0, 0);
      	baseIcon.iconAnchor = new GPoint(11, 35);
      	baseIcon.infoWindowAnchor = new GPoint(9, 2);
      	baseIcon.infoShadowAnchor = new GPoint(18, 25);
  
  		// Aņadimos los marcadores con los iconos personalizados y el titulo
		for ( var i = 0; i < latlng1.length; i++ )
		{
			
			baseIcon.image = "images/iconos/gmap_"+ (i+1) +".png";
			var marker = new GMarker( latlng1[ i ], {icon:baseIcon , title:titulos[ i ]} );
			map1.addOverlay( marker );
		}
		
		// Calculamos el autocentro y autozoom
		/*var latlngbounds = new GLatLngBounds( );
		for ( var i = 0; i < latlng1.length; i++ )
		{
			latlngbounds.extend( latlng1[ i ] );
		}*/
		
		// Asignamos al centro los valores calculados y el zoom
		//map1.setCenter( latlngbounds.getCenter( ), map1.getBoundsZoomLevel( latlngbounds ) );



		
		return map1;
	}
}

function initializeQueVerImprimir(map_canvas, latlng1, titulos) {
	if (GBrowserIsCompatible()) {
	
		// Iniciamos el mapa
		var map1 = new GMap2(document.getElementById(map_canvas));
		map1.setCenter( new GLatLng( 0, 0 ), 0 );
		map1.setMapType(G_NORMAL_MAP);
		map1.addControl(new GSmallMapControl());
	    map1.addControl(new GMapTypeControl());
		// Cargamos la estructura base del icono
 		var baseIcon = new GIcon();
      	baseIcon.iconSize = new GSize(24, 34);
      	baseIcon.shadowSize = new GSize(24, 34);
      	baseIcon.iconAnchor = new GPoint(11, 35);
      	baseIcon.infoWindowAnchor = new GPoint(9, 2);
      	baseIcon.infoShadowAnchor = new GPoint(18, 25);
  
  		// Aņadimos los marcadores con los iconos personalizados y el titulo
		for ( var i = 0; i < latlng1.length; i++ )
		{
			
			baseIcon.image = "images/iconos/gmap_"+ (i+1) +".png";
			var marker = new GMarker( latlng1[ i ], {icon:baseIcon , title:titulos[ i ]} );
			map1.addOverlay( marker );
		}
		
		// Calculamos el autocentro y autozoom
		var latlngbounds = new GLatLngBounds( );
		for ( var i = 0; i < latlng1.length; i++ )
		{
			latlngbounds.extend( latlng1[ i ] );
		}
		
		// Asignamos al centro los valores calculados y el zoom
		map1.setCenter( latlngbounds.getCenter( ), map1.getBoundsZoomLevel( latlngbounds ) );



		
		return map1;
	}
}



function initializeRoutes(map_canvas, latlng1, titulos, iconos) {
	if (GBrowserIsCompatible()) {
	
		// Iniciamos el mapa
		var map1 = new GMap2(document.getElementById(map_canvas));
		map1.setCenter( new GLatLng( 0, 0 ), 0 );
		map1.setMapType(G_PHYSICAL_MAP);
		map1.addControl(new GSmallMapControl());
	    map1.addControl(new GMapTypeControl());
		// Cargamos la estructura base del icono
 		var baseIcon = new GIcon();
      	//baseIcon.iconSize = new GSize(20, 20);
      	//baseIcon.shadowSize = new GSize(25, 25);
      	baseIcon.iconAnchor = new GPoint(20, 5);
      	//baseIcon.infoWindowAnchor = new GPoint(9, 2);
      	//baseIcon.infoShadowAnchor = new GPoint(18, 25);
  
  		// Aņadimos los marcadores con los iconos personalizados y el titulo
		for ( var i = 0; i < latlng1.length; i++ )
		{
			if(iconos[ i ]!="-"){
				baseIcon.image = "data/regionicon/"+iconos[ i ];
				var marker = new GMarker( latlng1[ i ], {icon:baseIcon , title:titulos[ i ]} );
				map1.addOverlay( marker );
			}	
		}
		
		// Calculamos el autocentro y autozoom
		var latlngbounds = new GLatLngBounds( );
		for ( var i = 0; i < latlng1.length; i++ )
		{
			latlngbounds.extend( latlng1[ i ] );
		}
		
		// Asignamos al centro los valores calculados y el zoom
		map1.setCenter( latlngbounds.getCenter( ), map1.getBoundsZoomLevel( latlngbounds ) );



		
		return map1;
	}
}

function locateQueVer() {
	var name = document.getElementById('direccion').value;
	p = "";
	
	var geocoder = new GClientGeocoder();
	geocoder.getLatLng(
		name,
		function(point) {
			if (!point) {
				alert(name + " no encontrada!");
			} else {
				//locateMapRegion(point);
				//printLongLat(point);
				p = point;
				document.getElementById('longlat').value = p;
			}
		}
	);
	return p;
}


function mostrarQueVer(idregion, idquever, idinfotipo, langid){
	var d = new Date();
    var url = 'public/QueVer/quever-display.php?idregion=' + idregion + '&idquever=' + idquever + '&idinfotipo=' + idinfotipo + '&langid=' + langid + '&nocache='+ d.getMilliseconds() ;
	//alert(url);
	//$('#quever-display').load("public/QueVer/quever-display.php", {idregion:idregion,idquever:idquever,idinfotipo:idinfotipo,langid:langid});
	//alert(url);
	$.post( "public/QueVer/quever-display.php", 
		   {idregion:idregion,idquever:idquever,idinfotipo:idinfotipo,langid:langid,nocahe: d.getMilliseconds()}, 
		   function(data){
			   $('#quever-display').html( data );
			 //  alert("Ajax call complete.");
			   }
		);
}
/**
 * ComoMoverse.js
 */
/**/
function initializeComoMoverseRuta(map_canvas) {
	if (GBrowserIsCompatible()) {
		var map = new GMap2(document.getElementById(map_canvas));
		map.setCenter( new GLatLng( 0, 0 ), 0 );
		
		map.addControl(new GSmallMapControl());
	    map.addControl(new GMapTypeControl());
		map.setMapType(G_HYBRID_MAP);

		
		return map;
	}
}

/*function initializeComoMoverse (map_canvas) {
	if (GBrowserIsCompatible()) {
		var map = new GMap2(document.getElementById(map_canvas));
		map.setCenter( new GLatLng( 0, 0 ), 0 );
		
		map.addControl(new GSmallMapControl());
	    map.addControl(new GMapTypeControl());
		map.setMapType(G_NORMAL_MAP);

		
		return map;
	}
}
*/

function initializeComoMoverse(map_canvas, latlng1) {
	if (GBrowserIsCompatible()) {
	
		// Iniciamos el mapa
		var map1 = new GMap2(document.getElementById(map_canvas));
		map1.setCenter( new GLatLng( 0, 0 ), 0 );
		map1.setMapType(G_HYBRID_MAP);
		map1.addControl(new GSmallMapControl());
	    map1.addControl(new GMapTypeControl());
		// Cargamos la estructura base del icono
 		var baseIcon = new GIcon();
      	baseIcon.iconSize = new GSize(24, 34);
      	baseIcon.shadowSize = new GSize(24, 34);
      	baseIcon.iconAnchor = new GPoint(11, 35);
      	baseIcon.infoWindowAnchor = new GPoint(9, 2);
      	baseIcon.infoShadowAnchor = new GPoint(16, 16);

		for ( var i = 0; i < latlng1.length; i++ )
		{
			
			baseIcon.image = "images/iconos/gmap_"+ (i+1) +".png";
			var marker = new GMarker( latlng1[ i ][0], {icon:baseIcon , title:latlng1[ i ][1]} );
			map1.addOverlay( marker );
		}
		
		// Calculamos el autocentro y autozoom
		var latlngbounds = new GLatLngBounds( );
		for ( var i = 0; i < latlng1.length; i++ )
		{
			latlngbounds.extend( latlng1[ i ][0] );
		}
		
		// Asignamos al centro los valores calculados y el zoom
		map1.setCenter( latlngbounds.getCenter( ), map1.getBoundsZoomLevel( latlngbounds )-1 );

		return map1;
	}
}
var gdirec;
function setDirections(map, fromAddress, toAddress, locale, travel_mode) {
	
	
	gdirec = new GDirections(map, document.getElementById("direcciones"));
	GEvent.addListener(gdirec, "load", onGDirectionsLoad);
	GEvent.addListener(gdirec, "error", handleErrors);
	gdirec.load("from: " + fromAddress + " to: " + toAddress,{travelMode:  eval(travel_mode), "locale": locale });

	//setDirections(fromAddress, toAddress, locale);

}

/*function setDirections(fromAddress, toAddress, locale) {
	gdirec.load("from: " + fromAddress + " to: " + toAddress,{ "locale": locale });
}*/


function handleErrors(){
	if (gdirec.getStatus().code == G_GEO_UNKNOWN_ADDRESS)
	alert("Direcci&oacute;n no disponible.\nError code: " + gdirec.getStatus().code);
	else if (gdirec.getStatus().code == G_GEO_SERVER_ERROR)
	alert("A geocoding or directions request could not be successfully processed, yet the exact reason for the failure is not known.\n Error code: " + gdirec.getStatus().code); 
	else if (gdirec.getStatus().code == G_GEO_MISSING_QUERY)
	alert("The HTTP q parameter was either missing or had no value. For geocoder requests, this means that an empty address was specified as input. For directions requests, this means that no query was specified in the input.\n Error code: " + gdirec.getStatus().code); 
	else if (gdirec.getStatus().code == G_GEO_BAD_KEY)
	alert("The given key is either invalid or does not match the domain for which it was given. \n Error code: " + gdirec.getStatus().code);
	else if (gdirec.getStatus().code == G_GEO_BAD_REQUEST)
	alert("A directions request could not be successfully parsed.\n Error code: " + gdirec.getStatus().code); 
	else alert("An unknown error occurred."); 
}


function onGDirectionsLoad(){
}





 function initializeComoMoverseDireccion(canvas, direccion, icono ) {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById(canvas));
        var geocoder = new GClientGeocoder();
        var address = direccion;


		map.setMapType(G_HYBRID_MAP);
		map.addControl(new GSmallMapControl());
	    map.addControl(new GMapTypeControl());

        geocoder.getLatLng(address,
          function showLocation(point) {
            if (!point) {
				  alert(address + " no encontrado.");
				} else {
	
				map.setCenter(point, 17);
				
				var baseIcon = new GIcon();
				baseIcon.iconSize = new GSize(16, 16);
				baseIcon.shadowSize = new GSize(16, 16);
				baseIcon.iconAnchor = new GPoint(11, 35);
				baseIcon.infoWindowAnchor = new GPoint(9, 2);
				baseIcon.infoShadowAnchor = new GPoint(16, 16);
				baseIcon.image = "images/iconos/" + icono;
			  
				  var marker = new GMarker(point , {icon:baseIcon, title:address });
				  map.addOverlay(marker);
	
	/*			  var label = direccion;
				  GEvent.addListener(marker, "click",
					function showLabel() {
					  marker.openInfoWindowHtml(label);
					}
				   );*/

            }
          }
        );
		
		
		
		

      }
    }



/**
 * MejoresViajes.js
 */
/**/
// JavaScript Document
function initializeMejoresViajes(map_canvas, latlng1) {
	if (GBrowserIsCompatible()) {
	
		// Iniciamos el mapa
		var map1 = new GMap2(document.getElementById(map_canvas));
		map1.setCenter( new GLatLng( 0, 0 ), 0 );
		map1.setMapType(G_PHYSICAL_MAP);
		map1.addControl(new GSmallMapControl());
	    map1.addControl(new GMapTypeControl());
		// Cargamos la estructura base del icono
 		var baseIcon = new GIcon();
      	baseIcon.iconSize = new GSize(24, 34);
      	baseIcon.shadowSize = new GSize(24, 34);
      	baseIcon.iconAnchor = new GPoint(11, 35);
      	baseIcon.infoWindowAnchor = new GPoint(9, 2);
      	baseIcon.infoShadowAnchor = new GPoint(16, 16);

		for ( var i = 0; i < latlng1.length; i++ )
		{
			
			baseIcon.image = "images/iconos/gmap_"+ (i+1) +".png";
			var marker = new GMarker( latlng1[ i ][0], {icon:baseIcon , title:latlng1[ i ][1]} );
			map1.addOverlay( marker );
		}
		
		// Calculamos el autocentro y autozoom
		var latlngbounds = new GLatLngBounds( );
		for ( var i = 0; i < latlng1.length; i++ )
		{
			latlngbounds.extend( latlng1[ i ][0] );
		}
		
		// Asignamos al centro los valores calculados y el zoom
		map1.setCenter( latlngbounds.getCenter( ), map1.getBoundsZoomLevel( latlngbounds ) );

		return map1;
	}
}



/**
 * Start.js
 */
/**/





/**
 * Start.js
 */
/**/