var CB = function() {

	//VARIABLES GLOBALES
	var polilineas=[];
	var marcadores=[];
	var marker1, marker2;
	var icono_ini, icono_fin, icono_trasb1, icono_trasb2;
	var click_listener;
	var marcadoresab=[];
	var marcadores_t = [];
	var treeview_cargado = false;
	var combo_lineas_cargado = false;
	var pagina_actual = 1;
	var poligono1, poligono2;
    var anterior, siguiente;
	var desde, hasta, total;
    var id_publicidad_actual=null;
	var map = null;

	//var ajax_cargar_combo_lineas=null;
	var ajax_cargar_treeview=null;
	var ajax_get_recorrido=null;
	var ajax_ver_recorrido=null;
	var ajax_ver_recorrido2=null;
	var ajax_cambiar_pagina=null;
	var ajax_cambiar_pagina_trasbordo=null;

	var radio_origen = 200;
	var radio_destino = 200;

	var piwikTracker = null;
	try {
		piwikTracker = Piwik.getTracker( "/piwik/piwik.php", 1);
		piwikTracker.trackPageView();
		piwikTracker.enableLinkTracking();
	} catch( err ) {alert(err)}


	var OPACIDAD_INICIAL	= 0.0;
	var OPACIDAD_MOUSEOVER	= 0.5;
	var OPACIDAD_SELECCIONADO	= 0.7;
	var GROSOR_POLILINEA	= 3; //en pixeles
	var RUTA_IMG			= '/img/'
	var RUTA_IMG_MICRO_CHICO = RUTA_IMG + 'micros/30x35/'
	var RUTA_IMG_MICRO_GRANDE = RUTA_IMG + 'micros/80x93/'
	var RUTA_ICONO_INI			= RUTA_IMG + 'ac.png' //16x16 px
	var RUTA_ICONO_FIN			= RUTA_IMG + 'bc.png'
	var RUTA_ICONO_DESELECCIONADO	= RUTA_IMG + 'lockopen.png'
	var RUTA_ICONO_SELECCIONADO		= RUTA_IMG + 'lockclose.png'
	var RUTA_ICONO_MASINFO		= RUTA_IMG + 'moreinfo2.png'
	var RUTA_AJAX_LOADING		= RUTA_IMG + 'loadingfb.gif'
	var RUTA_IMG_PUBLICIDADES	= RUTA_IMG + 'publicidades/'
	var RUTA_IMG_BUSCAR	= RUTA_IMG + 'buscar.png'
	var RUTA_ICONO_MARKERA = RUTA_IMG + 'markera.png'
	var RUTA_ICONO_MARKERB = RUTA_IMG + 'markerb.png'
	var RUTA_ICONO_MARKERT = RUTA_IMG + 'markert.png'

	//DATOS DE LOS POLIGONOS
	var COLOR_BORDE = "#000080";
	var ANCHO_BORDE = 1;
	var OPACIDAD_BORDE = 0.3;
	var COLOR_RELLENO = "#0000FF";
	var OPACIDAD_RELLENO = 0.15;	

	var RADIO = 300;


	var outerLayout;
	$(document).ready( function() {

		$('#facebook').mouseenter(function(){$('#facebook').attr("class", "div-mouseover");})
		$('#facebook').mouseleave(function(){$('#facebook').attr("class", "div-inicial");})

		$('#twitter').mouseenter(function(){$('#twitter').attr("class", "div-mouseover");})
		$('#twitter').mouseleave(function(){$('#twitter').attr("class", "div-inicial");})

		$('#youtube').mouseenter(function(){$('#youtube').attr("class", "div-mouseover");})
		$('#youtube').mouseleave(function(){$('#youtube').attr("class", "div-inicial");})


		$('#origen').keyup(presiono_tecla);
		$('#destino').keyup(presiono_tecla);


		if (activarTreeview)
			$("#accordion").accordion({
					fillSpace:			true
				,	active:				1
				,	autoHeight:			true
			});
		else
			$("#accordion").accordion({
					fillSpace:			true
				,	active:				0
				,	autoHeight:			true
			});

		$("#tree").treeview({
			collapsed: true,
			animated: "medium",
			control:"#sidetreecontrol",
			prerendered: false
		});

		$("#slider-origen").slider({
			value:200,
			min: 200,
			max: 600,
			step: 10,
			slide: function(event, ui) {
				$("#a-cantidad-origen").html(ui.value + 'Mts.');
				radio_origen = ui.value;
				if (poligono1!=null){
					map.removeOverlay(poligono1)
					drawCircle(marker1.getLatLng().lat(),marker1.getLatLng().lng() , radio_origen, COLOR_BORDE, ANCHO_BORDE, OPACIDAD_BORDE, COLOR_RELLENO, OPACIDAD_RELLENO, 'origen');}
			}
		});


		$("#slider-destino").slider({
			value:200,
			min: 200,
			max: 600,
			step: 10,
			slide: function(event, ui) {
				$("#a-cantidad-destino").html(ui.value + 'Mts.');
				radio_destino = ui.value;
				if (poligono2!=null){
					map.removeOverlay(poligono2);
					drawCircle(marker2.getLatLng().lat(),marker2.getLatLng().lng() , radio_destino, COLOR_BORDE, ANCHO_BORDE, OPACIDAD_BORDE, COLOR_RELLENO, OPACIDAD_RELLENO, 'destino');}
			}
		});

		// create the OUTER LAYOUT
		outerLayout = $("body").layout( layoutSettings_Outer );

		// save selector strings to vars so we don't have to repeat it
		// must prefix paneClass with "body > " to target ONLY the outerLayout panes
		var westSelector = "body > .ui-layout-west"; // outer-west pane
		var eastSelector = "body > .ui-layout-east"; // outer-east pane
 
		 // CREATE SPANs for close-buttons - using unique IDs as identifiers
		$("<span></span>").attr("id", "west-closer" ).prependTo( westSelector );
		$("<span></span>").attr("id", "east-closer").prependTo( eastSelector );

		// BIND layout events to close-buttons to make them functional
		outerLayout.addCloseBtn("#west-closer", "west");
		outerLayout.addCloseBtn("#east-closer", "east");
		
		$("#accordion").accordion("resize");


        if (GBrowserIsCompatible()){ 
		    map = new GMap2(document.getElementById("centro"));

			if (typeof mapCenter === 'undefined')
				map.setCenter(new GLatLng(-34.8867, -57.8988), 11);
			else {
			    map.setCenter(new GLatLng(0, 0), 0);
				map.checkResize()
				map.setCenter(new GLatLng(mapCenter[0], mapCenter[1]));
				map.setZoom(mapZoom);

			}

		    map.addControl(new GMapTypeControl(1));
		    map.addControl(new GLargeMapControl3D());
		    map.addControl(new GScaleControl());
            map.enableScrollWheelZoom() 

		    adsManager = new GAdsManager(
			    map, 
			    "ca-pub-1193419141108967", 
			    {
				    maxAdsOnMap : 4,
				    style: 'adunit'
			    }
		    );
		    adsManager.enable();


			$(window).resize(function() { 
                map.checkResize() 
                $("#accordion").accordion("resize");
            });
        }
		else {
            alert('Navegador no compatible con google maps');
        }

		click_listener = GEvent.addListener(map, "click", map_listener_function);

		map.checkResize();

		//map.addOverlay(new GPolyline([ new GLatLng(boxlat1, boxlng1), new GLatLng(boxlat1, boxlng2), new GLatLng(boxlat2, boxlng2), new GLatLng(boxlat2, boxlng1), new GLatLng(boxlat1, boxlng1) ]))

		if (id_recorrido_treeview)
			CB.get_recorrido(id_recorrido_treeview)

    //$("#origen").twipsy({placement:"above", html:true, trigger: 'focus', fade: true}) 
    //$("#destino").twipsy({placement:"above", html:true, trigger: 'focus', fade: true}) 

		$("#origen").focus();

	});


	var layoutSettings_Outer = {
		defaults: {
			minSize:				100
		,	paneClass:				"pane" 		// default = 'ui-layout-pane'
		,	resizerClass:			"resizer"	// default = 'ui-layout-resizer'
		,	togglerClass:			"toggler"	// default = 'ui-layout-toggler'
		,	buttonClass:			"button"	// default = 'ui-layout-button'
		,	contentSelector:		".content"	// inner div to auto-size so only it scrolls, not the entire pane!
		,	contentIgnoreSelector:	"span"		// 'paneSelector' for content to 'ignore' when measuring room for content
		,	togglerLength_open:		35			// WIDTH of toggler on north/south edges - HEIGHT on east/west edges
		,	togglerLength_closed:	35			// "100%" OR -1 = full height
		,	hideTogglerOnSlide:		true		// hide the toggler when pane is 'slid open'
		,	togglerTip_open:		"Close This Pane"
		,	togglerTip_closed:		"Open This Pane"
		,	resizerTip:				"Resize This Pane"
		//	effect defaults - overridden on some panes
		,	fxName:					"slide"		// none, slide, drop, scale
		,	fxSpeed_open:			750
		,	fxSpeed_close:			1500
		,	fxSettings_open:		{ easing: "easeInQuint" }
		,	fxSettings_close:		{ easing: "easeOutQuint" }
	}
	,   north:  {
			size:				   120
	}
	,	west: {
			size:					300
		,   slidable:			   false
		,	spacing_closed:			21			// wider space when closed
		,	togglerLength_closed:	21			// make toggler 'square' - 21x21
		,	togglerAlign_closed:	"top"		// align to top of resizer
		,	togglerLength_open:		0			// NONE - using custom togglers INSIDE west-pane
		,	togglerTip_open:		"Close West Pane"
		,	togglerTip_closed:		"Open West Pane"
		,	initClosed:				false
		//	override default effect, speed, and settings
		,	fxSpeed:				"normal"
		,	fxSettings:				{ easing: "" } // nullify default easing
		,	resizable: 				false
		,   onresize:			   function(){ $("#accordion").accordion("resize"); }

		}
	,	east: {
			size:					300
		,   slidable:			   false
		,	spacing_closed:			21			// wider space when closed
		,	togglerLength_closed:	21			// make toggler 'square' - 21x21
		,	togglerAlign_closed:	"top"		// align to top of resizer	
		,	togglerLength_open:		0 			// NONE - using custom togglers INSIDE east-pane
		,	togglerTip_open:		"Close East Pane"
		,	togglerTip_closed:		"Open East Pane"
		,	initClosed:				false
		//	override default effect, speed, and settings
		,	fxSpeed:				"normal"
		,	fxSettings:				{ easing: "" } // nullify default easing
		,	resizable: 				false
		,   onresize:		function () { $("#accordion").accordion("resize"); }
		}
	,   center: {
			onresize:   function () { 
			map.checkResize(); 
			$("#accordion").accordion("resize");

		}
		}
	};
    
    function p(array){
		for (var i=0; i<array[1].length; i++) { //PARA TODOS LOS RECORRIDOS
    		for (var j=0; j<array[1][i][1].length; j++) { //PARA TODOS LOS PUNTOS DEL RECORRIDO i
                var id_punto = array[1][i][1][j][0]
                array[1][i][1][j][1] = parseFloat(array[1][i][1][j][1]) + (7*parseInt(id_punto))
                array[1][i][1][j][2] = parseFloat(array[1][i][1][j][2]) - (7*parseInt(id_punto))
                array[1][i][1][j][3] = parseFloat(array[1][i][1][j][3]) - (7*parseInt(id_punto))
            }
        }
        return array;
    }

	function log(nombre){
		piwikTracker.setDocumentTitle(nombre)
		piwikTracker.setCustomUrl("/" + nombre)
		piwikTracker.trackPageView()
	}

	function accordion1() {
		log(ciudad+"/accordion/1")
	}
	function accordion2() {
		log(ciudad+"/accordion/2")
		cargar_treeview()
	}
	function accordion3() {
		log(ciudad+"/accordion/3")
	}
	function accordion4() {
		log(ciudad+"/accordion/4")
	}
	function accordion5() {
		log(ciudad+"/accordion/5")
	}

/*
    function sumar_click(id) {
		$.ajax({
			url: "/sumar_click.php?id=" + id,
			async: true
		});        
    }

     //TRAE UN ANUNCIO PUBLICITARIO AL AZAR Y LO PONE ARRIBA DE LOS RESULTADOS
    function get_publicidad(){
        if (id_publicidad_actual==null){
			var customUrl = "/get_publicidad.php";
        }else{
			var customUrl = "/get_publicidad.php?id=" + id_publicidad_actual;
        };

		$.ajax({
            url: customUrl,
			async: true,
            cache: false,
			complete: function(XMLHttpRequest, textStatus){
                var json = jQuery.parseJSON(XMLHttpRequest.responseText);

                id_publicidad_actual = json["id"];
                var html = '<a href="'+json["enlace"]+'"><img id="img_publicidad" onclick="javascript:CB.sumar_click('+json["id"]+');" style="border: none; border-bottom: solid 1px #777; margin-bottom: 5px;" title="'+json["nombre"]+'" src="'+RUTA_IMG_PUBLICIDADES+json["img"]+'.gif"></a>';    
                $('#publicidad').fadeOut('slow', function() {
				    $('#publicidad').html(html);
                    $('#img_publicidad').load(function(){
                        $('#publicidad').fadeIn('slow');
                    });
                });
			}
		}); 
    };
*/

	//MUESTA LA AYUDA EN EL PANEL DE RESULTADOS
	function ver_ayuda(){
		log(ciudad+"/ayuda")
		limpiar_mapa();
		outerLayout.open('east');
		$.ajax({
			url: "/explicacion.php",
			async: true,
			complete: function(XMLHttpRequest, textStatus){
				$('#resultados').html(XMLHttpRequest.responseText);
			}
		});
	}
	
	//BORRA TODO DEL MAPA Y LO DEJA EN EL ESTADO INICIAL
	function limpiar_mapa(){
		log(ciudad+"/botonera/limpiar")
		if (marker1!=null){ 
			map.removeOverlay(marker1);
			marker1=null;			
		}

		if (marker2!=null){
			map.removeOverlay(marker2);
			marker2=null;
		}

		if (poligono1!=null){ 
			map.removeOverlay(poligono1);
			poligono1=null;
		}

		if (poligono2!=null){
			map.removeOverlay(poligono2);	
			poligono2=null;
		}

		for (id in polilineas)
			map.removeOverlay(polilineas[id].p);

		for (id in marcadores_t)
			map.removeOverlay(marcadores_t[id]);

		//ACA MATAMOS TODOS LOS AJAX PENDIENTES
		if ( ajax_get_recorrido != null ) ajax_get_recorrido.abort()
		if ( ajax_ver_recorrido != null ) ajax_ver_recorrido.abort()
		if ( ajax_ver_recorrido2 != null ) ajax_ver_recorrido2.abort()
		if ( ajax_cambiar_pagina != null ) ajax_cambiar_pagina.abort()
		if ( ajax_cambiar_pagina_trasbordo != null ) ajax_cambiar_pagina_trasbordo.abort()
		
		polilineas = new Array(); 
		marcadores_t = new Array();

		$('#resultados').html('');
		$('#footer').html('Esperando busqueda...');	
		
		if (click_listener==null){
			click_listener = GEvent.addListener(map, "click", map_listener_function);
		}

		$('#origen').val('');
		$('#destino').val('');

		//PONGO LOS RADIOS DE BUSQUEDA EN EL MINIMO
        radio_origen = 200;
        radio_destino = 200;  
        $("#slider-origen").slider( "value" , 200 )
        $("#slider-destino").slider( "value" , 200 )
        $("#a-cantidad-origen").html("200" + 'Mts.');
        $("#a-cantidad-destino").html("200" + 'Mts.');		
		
		//outerLayout.close('east');
	}

	//INTERCAMBIA EL MARKER ORIGEN Y DESTINO.
	function intercambiar_od(){
		log(ciudad+"/botonera/intercambiar")
		if (poligono1!=null && poligono2!=null){ //NO ESTOY EN MODO TREEVIEW
			var aux = marker1.getLatLng();
			marker1.setLatLng(marker2.getLatLng());
			marker2.setLatLng(aux);
			map.removeOverlay(poligono1);
			map.removeOverlay(poligono2);
			drawCircle(marker1.getLatLng().lat(),marker1.getLatLng().lng() , radio_origen, COLOR_BORDE, ANCHO_BORDE, OPACIDAD_BORDE, COLOR_RELLENO, OPACIDAD_RELLENO, 'origen'); 
			drawCircle(marker2.getLatLng().lat(),marker2.getLatLng().lng() , radio_destino, COLOR_BORDE, ANCHO_BORDE, OPACIDAD_BORDE, COLOR_RELLENO, OPACIDAD_RELLENO, 'destino');
			actualizar_mapa();
		}
	}

	function exportar_PDF() {
		log(ciudad+"/botonera/pdf")
		var entry_o = document.getElementById("origen").value;
		var entry_d = document.getElementById("destino").value;
		var poly=null
		var puntos=""
		for (var id in polilineas) {
			// polilineas tiene propiedades [p, seleccionado, color, i]
			if (polilineas[id].seleccionado) poly = polilineas[id]
		}
		for (var i = 0 ; i<poly.p.getVertexCount() ; i++) {
			puntos = puntos + "|" + poly.p.getVertex(i).lat() + "," +poly.p.getVertex(i).lng()
		}
		url = "/pdf.php?" 
			+ "o=" + entry_o
			+ "&d=" + entry_d
			+ "&markers="+marker1.getLatLng().lat()+","+marker1.getLatLng().lng()+",bluea|"+marker2.getLatLng().lat()+","+marker2.getLatLng().lng()+",blueb"
			+ "&path=rgb:0x"+poly.color.substring(1)+",weight:5"+puntos
		window.open(url)
	}

	function boton_buscar(event) {
		log(ciudad+"/busca/boton_buscar")
		buscar()
	}

	//CUANDO APRETAS ENTER EN LOS CAMPOS DE TEXTO
	function presiono_tecla(event) {
		if (event.keyCode == '13') {
			if ($('#origen').val()!='' && $('#destino').val()!=''){
				log(ciudad+"/busca/teclaEnter")
				buscar()
			}
		}
	}

	//DIBUJA EL POLIGONO CIRCULAR EN EL MAPA
	function drawCircle(lat, lng, radius, strokeColor, strokeWidth, strokeOpacity, fillColor, fillOpacity, od) {
	  //log(ciudad+"/dibuja_circulo")
	  var d2r = Math.PI/180;
	  var r2d = 180/Math.PI;
	  var Clat = radius * 0.000013;  // Convert statute metros into degrees latitude
	  var Clng = Clat/Math.cos(lat*d2r); 
	  var Cpoints = []; 
	  for (var i=0; i < 33; i++) { 
		var theta = Math.PI * (i/16);
		var Cy = lat + (Clat * Math.sin(theta));
		var Cx = lng + (Clng * Math.cos(theta));
		var P = new GLatLng(Cy, Cx);
		Cpoints.push(P);
	  }
	  if (od=='origen'){
		  poligono1 = new GPolygon(Cpoints, strokeColor, strokeWidth, strokeOpacity, fillColor, fillOpacity);
		  map.addOverlay(poligono1);}
	  if (od=='destino'){
		  poligono2 = new GPolygon(Cpoints, strokeColor, strokeWidth, strokeOpacity, fillColor, fillOpacity);
		  map.addOverlay(poligono2);}
	 }

	//CARGA EL TREEVIEW POR AJAX PARA ALIVIANAR EL LOAD DE LA PAGINA
	function cargar_treeview(){
		if (treeview_cargado==false){
			$('#div-treeview').html('<div align="center"><img style="margin:10px;" src="'+RUTA_AJAX_LOADING+'"></div>');
			if ( ajax_cargar_treeview != null ) ajax_cargar_treeview.abort()
			ajax_cargar_treeview = $.ajax({
				url: "/treeview.php?ci="+window.location.pathname.split("/")[1],
				async: true,
				complete: function(XMLHttpRequest, textStatus){
					$("#div-treeview").html(XMLHttpRequest.responseText);
					$("#tree").treeview({
						collapsed: true,
						animated: "medium",
						control: "#sidetreecontrol",
						prerendered: false
					});
					treeview_cargado=true;
				}
			});
		}
	}

	//METODO QUE RECUPERA EL RECORRIDO CUANDO CLICKEAS EN EL TREEVIEW
	function get_recorrido(id){
		log(ciudad+"/busca/treeview")
		outerLayout.open('east'); //ABRE EL PANEL DERECHO (RESULTADOS)
		$('#footer').html('Esperando busqueda...');		
		$('#resultados').html('<div align="center"><img style="margin:10px;" src="'+RUTA_AJAX_LOADING+'"></div>');
		if (ajax_get_recorrido!=null) ajax_get_recorrido.abort();
		ajax_get_recorrido = $.ajax({
			url: "/ver_recorrido.php?id=" + id,
			async: true,
            dataType: "json",
			complete: function(HttpRequest, textStatus){
				var response = HttpRequest.responseText.substring(11, HttpRequest.responseText.length-1);
                json = p(jQuery.parseJSON(response));
				for (id in polilineas)
					map.removeOverlay(polilineas[id].p);

				for (id in marcadores_t)
					map.removeOverlay(marcadores_t[id]);

				if (icono_ini!=null){
					map.removeOverlay(icono_ini);	
					map.removeOverlay(icono_fin);
				}  
					
				polilineas = new Array(); 
				marcadores_t = new Array();
				agregar_recorridos(json[1], true)
			}
		});
	}

	//ACTUALIZA LOS RESULTADOS Y LOS MUESTRA EN EL MAPA
	function actualizar_mapa(){
		log(ciudad+"/botonera/actualizar")
		if (poligono1!=null && poligono2!=null){ //NO ESTOY EN MODO TREEVIEW
			ver_recorridos(marker1.getLatLng().lat(), marker1.getLatLng().lng(), marker2.getLatLng().lat(), marker2.getLatLng().lng(), RADIO);		
		}
	}

	//LE PIDE A PAGINADOR.PHP LA SIG O ANT PAGINA DE RESULTADOS
    function cambiar_pagina(opcion){
		log(ciudad+"/cambiar_pagina/simple/"+opcion)
	    $('#footer').html('Esperando busqueda...');
	    $('#resultados').html('<div align="center"><img style="margin:10px;" src="'+RUTA_AJAX_LOADING+'"></div>');
        if (opcion=="ANTERIOR"){
		     var url_destino='/paginador.php?op=ANT';
        }else{
			if (opcion=="SIGUIENTE"){
				var url_destino='/paginador.php?op=SIG';
			}
		}
      
        ajax_cambiar_pagina = $.ajax({
			url: url_destino,
			async: true,
            dataType: "json",
			complete: function(XMLHttpRequest, textStatus){
		        var response = XMLHttpRequest.responseText;
		        if (response!=null){
                    //get_publicidad()
                    if (response.charAt(0)=='<'){ //VINO UN XML CON UN ERROR
						ver_recorridos(marker1.getLatLng().lat(), marker1.getLatLng().lng(), marker2.getLatLng().lat(), marker2.getLatLng().lng(), RADIO);
					}else{
                        if (response.charAt(0)=='w'){
                            response = response.substring(11, response.length-1);
                            response = p($.parseJSON(response));
                            
					        var recorridos = response[1]
						    anterior = response[0][4]
						    siguiente = response[0][5]
						    desde = parseInt(response[0][6])+1;
						    hasta = parseInt(response[0][7])+1;
						    total = parseInt(response[0][8]);
						    if (hasta > total){ hasta=total; }

					        for (id in polilineas)
						        map.removeOverlay(polilineas[id].p);

					        for (id in marcadores_t)
						        map.removeOverlay(marcadores_t[id]);

					        if (icono_ini!=null){
						        map.removeOverlay(icono_ini);	
						        map.removeOverlay(icono_fin);
					        }  

					        polilineas = new Array(); 
					        marcadores_t = new Array();					

					        if (recorridos.length == 0) {
						        $('#resultados').html('<div class="div-inicial" align="center"><p style="font-weight:bold;">Lo sentimos, no se encontraron resultados de transportes directos</p><br><p>Presione el botón para realizar una búsqueda de transportes combinados (con transbordo)</p><br><button onclick="javascript:CB.ver_recorridos2('+lat1+', '+lng1+', '+lat2+', '+lng2+', '+rad+')"><img src="'+RUTA_IMG_BUSCAR+'"> Buscar con Transbordo</button></div>');
					        }
					        else {
						        agregar_recorridos(recorridos)
					        }
                        }
					}
		        }  
			}                  
	    });
    }

	//LE PIDE A PAGINADOR_TRASBORDO.PHP LA SIG O ANT PAGINA DE RESULTADOS
    function cambiar_pagina_trasbordo(opcion){
		log(ciudad+"/cambiar_pagina/transbordo/"+opcion)
	    $('#footer').html('Esperando busqueda...');
	    $('#resultados').html('<div align="center"><img style="margin:10px;" src="'+RUTA_AJAX_LOADING+'"></div>');
        if (opcion=="ANTERIOR"){
			var url_destino='/paginador_trasbordo.php?op=ANT';
		}else{
			if (opcion=="SIGUIENTE"){
				var url_destino='/paginador_trasbordo.php?op=SIG';	
			}
		}

        ajax_cambiar_pagina_trasbordo = $.ajax({
			url: url_destino,
			async: true,
            dataType: "json",
			complete: function(XMLHttpRequest, textStatus){
				var response = XMLHttpRequest.responseText;
				if (response!=null){
                    //get_publicidad()
					if (response.charAt(0)=='<'){ //VINO UN XML CON UN ERROR
						ver_recorridos2(marker1.getLatLng().lat(), marker1.getLatLng().lng(), marker2.getLatLng().lat(), marker2.getLatLng().lng(), RADIO);
					}else{
                        if (response.charAt(0)=='w'){
                            response = response.substring(11, response.length-1);
                            response = p($.parseJSON(response));

						    var recorridos = response[1]
				            anterior = response[0][4]
				            siguiente = response[0][5]
						    desde = parseInt(response[0][6])+1;
						    hasta = parseInt(response[0][7])+1;
						    total = parseInt(response[0][8]);
						    if (hasta > total){ hasta=total; }

						    //for (var i = 0; i < polilineas.length; i++)
						    for (id in polilineas)
							    map.removeOverlay(polilineas[id].p);  ////ERROR ACA///
					
						    for (id in marcadores_t)
							    map.removeOverlay(marcadores_t[id]);
						
						    polilineas = new Array(); 
						    marcadores_t=new Array();
					
						    if (recorridos.length == 0) {
							    $('#resultados').html('<div class="div-inicial" align="center"><p style="font-weight:bold;">Lo sentimos, no se encontraron resultados de transportes</p><br><p>Puede intentar restringiendo menos la cantidad de metros maxima a caminar</p></div>');
						    }
						    else {
							    agregar_recorridos_trasbordo(recorridos);
						    }
                        }
					}
				}
				//urlparam( { lat1:lat1 , lng1:lng1 , lat2:lat2 , lng2:lng2 , rad:rad , t:"2"} )
				for (id in polilineas) if (polilineas[id].i == 0) {clickeo_div2(id.substring(0, id.length-1)); break;} //selecciona la primer polilinea				
			}                  
	    });            
    }

	//ARMA LOS HTML DE LOS RESULTADOS Y MANDA A AGREGAR LOS RECORRIDOS (SIN TRASBORDO)
	function agregar_recorridos(json, desde_treeview) {
		if (desde_treeview==null){		
			$('#footer').html('Recorridos del '+desde+' al '+hasta+' de '+total);
		}else{
			$('#footer').html('Busqueda realizada con exito');}
		var codHtml = '';
        if (anterior==1 && desde_treeview==null){codHtml+='<div align="center"><button onclick="javascript:CB.cambiar_pagina(\'ANTERIOR\');" class="btn small">Ver anterior pagina</button></div>'};
		for (var i = 0; i < json.length; i++) {
			//Datos del recorrido
			var id = parseInt(json[i][0][0]);
			var nombre_linea = json[i][0][1];
			var nombre_ramal = json[i][0][2];
			//var nombre_recorrido = recorridos[i].getAttribute("nombre_recorrido");
			var long_pata = json[i][0][8];
			var long_bondi = json[i][0][7];
			//var descripcion = recorridos[i].getAttribute("descripcion");
			//var color_polilinea = recorridos[i].getAttribute("color_polilinea");
			var foto_linea = json[i][0][6];
			agregarRecorridoI(json, i, desde_treeview); //esto se puede mejorar, pero lo hago por el tema del "function closure"
            
			codHtml +=
				'<div id="div'+id+'" class="div-inicial" onClick="javascript:CB.clickeo_div('+id+');">'
			+		'<table border="0" style="margin:0">'
			+			'<tr valign="top">'
			+				'<td>'
			+					'<img border="1" src="'+RUTA_IMG_MICRO_CHICO+foto_linea+'.jpg">'
			+				'</td>'
			+				'<td align="left"  width="100%">'
			+					'<p><strong>'+nombre_linea+' '+nombre_ramal+'</strong><br>'
			+					'Caminando: '+long_pata+'mts<br>'
			+					'En colectivo: '+long_bondi+'mts</p>'
			+				'</td>'
			+				'<td align="right">'
			+					'<img src="'+RUTA_ICONO_MASINFO+'" style="margin:0px 0px 17px 0px; cursor: pointer;" onClick="javascript:CB.obtener_info_recorrido('+id+')" title="Mostrar mas información"><br>'
			+					'<img id="lock'+id+'" src="'+RUTA_ICONO_DESELECCIONADO+'"  title="Seleccionar este camino">'
			+				'</td>'
			+			'</tr>'
			+		'</table>'
			+	'</div>'
		}
        if (siguiente==1 && desde_treeview==null){codHtml+='<div align="center"><button onclick="javascript:CB.cambiar_pagina(\'SIGUIENTE\');" class="btn small">Ver siguiente pagina</button></div>'};
		$('#resultados').html(codHtml);
		for (var i = 0; i < json.length; i++) {
			var id = parseInt(json[i][0]);
			$('#div'+id).mouseenter(function(){
				id=this.id.substring(3,this.id.length) //el 3 es por usar como id "div+numero"
				if (polilineas[id].seleccionado == false) {
					polilineas[id].p.setStrokeStyle({opacity:OPACIDAD_MOUSEOVER}); 
					$(this).attr("class", "div-mouseover"); 
				}
			}).mouseleave(function(){
				id=this.id.substring(3,this.id.length) //el 3 es por usar como id "div+numero"
				if (polilineas[id].seleccionado == false) {
					polilineas[id].p.setStrokeStyle({opacity:OPACIDAD_INICIAL}); 
					$(this).attr("class", "div-inicial"); 
				}
			});
		}
		for (id in polilineas) {
			if (polilineas[id].i == 0) {
				clickeo_div(id);
			}
		} //selecciona la primer polilinea
	}

	//ARMA LOS HTML DE LOS RESULTADOS Y MANDA A AGREGAR LOS RECORRIDOS (CON TRASBORDO)
	function agregar_recorridos_trasbordo(recorridos){
		pagina_actual += 1;
		$('#footer').html('Combinaciones de la '+desde+' al '+hasta+' de '+total);
		var codHtml = '';
		if (anterior==1){codHtml+='<div align="center"><button onclick="javascript:CB.cambiar_pagina_trasbordo(\'ANTERIOR\');" class="btn small">Ver anterior pagina</button></div>'};
		for (var i = 0; i < recorridos.length; i++) {
			//Datos del recorrido
			var id = parseInt(recorridos[i][0][0]+recorridos[i][0][1]);
			var id1 = parseInt(recorridos[i][0][0])
			var id2 = parseInt(recorridos[i][0][1])
			var foto1 = recorridos[i][0][2];
			var foto2 = recorridos[i][0][3];

			var long_camino1 = parseInt(recorridos[i][0][9]);
			var long_camino2 = parseInt(recorridos[i][0][10]);
			var long_bondi = long_camino1 + long_camino2;
			var long_pata = parseInt(recorridos[i][0][11]);

			var nombre1 = recorridos[i][0][4];
			var nombre2 = recorridos[i][0][5];
			var cant1 = parseInt(recorridos[i][0][6]);
			agregarRecorridoI2(recorridos, i, cant1); //esto se puede mejorar, pero lo hago por el tema del "function closure"
			codHtml +=
				'<div id="div'+id+'" class="div-inicial" onClick="javascript:CB.clickeo_div2('+id+');">'
			+		'<table border="0" style="margin:0">'
			+			'<tr valign="top">'
			+				'<td>'
			+					'<img border="1" src="'+RUTA_IMG_MICRO_CHICO+foto1+'.jpg"><br>'
			+					'<img border="1" src="'+RUTA_IMG_MICRO_CHICO+foto2+'.jpg">'
			+				'</td>'
			+				'<td align="left"  width="100%">'
			+					'<p><strong>1°: '+nombre1+'</strong><br>'
			+					'<strong>2°: '+nombre2+'</strong><br>'
			+					'Caminando: '+ long_pata +'mts<br>'
			+					'En colectivo: '+ long_bondi +'mts</p>'
			+				'</td>'
			+				'<td align="right">'
			+					'<img src="'+RUTA_ICONO_MASINFO+'" style="margin:0px 0px 17px 0px; cursor: pointer;" onClick="javascript:CB.obtener_info_recorrido_trasbordo('+id+','+id1+','+id2+')" title="Mostrar mas información"><br>'
			+					'<img id="lock'+id+'" src="'+RUTA_ICONO_DESELECCIONADO+'"  title="Seleccionar este camino">'
			+				'</td>'
			+			'</tr>'
			+		'</table>'
			+	'</div>'
		}
		if (siguiente==1){codHtml+='<div align="center"><button onclick="javascript:CB.cambiar_pagina_trasbordo(\'SIGUIENTE\');" class="btn small">Ver siguiente pagina</button></div>'};
		$('#resultados').html(codHtml);
		for (var i = 0; i < recorridos.length; i++) {
			var id = parseInt(recorridos[i][0][0]+recorridos[i][0][1]);
			$('#div'+id).mouseenter(function(){
				id=this.id.substring(3,this.id.length) //el 3 es por usar como id "div+numero"
				if (polilineas[id+"1"].seleccionado == false) {
					polilineas[id+"1"].p.setStrokeStyle({opacity:OPACIDAD_MOUSEOVER}); 
					polilineas[id+"2"].p.setStrokeStyle({opacity:OPACIDAD_MOUSEOVER});
					$(this).attr("class", "div-mouseover"); 
				}
			}).mouseleave(function(){
				id=this.id.substring(3,this.id.length) //el 3 es por usar como id "div+numero"
				if (polilineas[id+"1"].seleccionado == false) {
					polilineas[id+"1"].p.setStrokeStyle({opacity:OPACIDAD_INICIAL}); 
					polilineas[id+"2"].p.setStrokeStyle({opacity:OPACIDAD_INICIAL});
					$(this).attr("class", "div-inicial"); 
				}
			});
		}
	}

	//AGREGA EL RECORRIDO SIN TRASBORDO AL MAPA
	function agregarRecorridoI(json, i, desde_treeview)
	{
		var puntos = json[i][1];
		Gpuntos = new Array();
		for (var j = 0; j < puntos.length; j++) {
			var lat = parseFloat(puntos[j][2]);
			var lng = parseFloat(puntos[j][1]);
			Gpuntos.push(new GLatLng(lat, lng));
			if (desde_treeview!=null){
			if (j==0){
				if (poligono1!=null){ map.removeOverlay(poligono1);
				poligono1=null;}
				if (marker1!=null){marker1.setLatLng(new GLatLng(lat, lng));}
				else {
					var iconA = new GIcon();
					iconA.image = RUTA_ICONO_MARKERA;
					iconA.iconSize = new GSize(20,34);
					iconA.iconAnchor = new GPoint(10,34);
					marker1 = new GMarker(new GLatLng(lat, lng), {icon:iconA, draggable: true});
					map.addOverlay( marker1 ); 
					GEvent.addListener(marker1, "dragstart", function(latlng) {
						if (poligono1!=null){map.removeOverlay(poligono1);}
					});
					GEvent.addListener(marker1, "dragend", function(latlng) {
						if (marker2!=null){							
							drawCircle(marker1.getLatLng().lat(),marker1.getLatLng().lng() , radio_origen, COLOR_BORDE, ANCHO_BORDE, OPACIDAD_BORDE, COLOR_RELLENO, OPACIDAD_RELLENO, 'origen');
							if (poligono2==null){drawCircle(marker2.getLatLng().lat(),marker2.getLatLng().lng() , radio_destino, COLOR_BORDE, ANCHO_BORDE, OPACIDAD_BORDE, COLOR_RELLENO, OPACIDAD_RELLENO, 'destino');}
							log(ciudad+"/busca/dragend")
							ver_recorridos(latlng.lat(), latlng.lng(), marker2.getLatLng().lat(), marker2.getLatLng().lng(), RADIO);
						}
					});
				}
			}

			if (j==puntos.length-1){
				if (poligono2!=null){ map.removeOverlay(poligono2);
				poligono2=null;}
				if (marker2!=null){marker2.setLatLng(new GLatLng(lat, lng));}
				else{
					var iconB = new GIcon();
					iconB.image = RUTA_ICONO_MARKERB;
					iconB.iconSize = new GSize(20,34);
					iconB.iconAnchor = new GPoint(10,34);
					marker2 = new GMarker(new GLatLng(lat, lng), {icon:iconB, draggable: true});
					map.addOverlay( marker2 );
					GEvent.addListener(marker2, "dragstart", function(latlng) {
						if (poligono2!=null){map.removeOverlay(poligono2);}
					});
					GEvent.addListener(marker2, "dragend", function(latlng) {
						if (marker1!=null){
							drawCircle(marker2.getLatLng().lat(),marker2.getLatLng().lng() , radio_destino, COLOR_BORDE, ANCHO_BORDE, OPACIDAD_BORDE, COLOR_RELLENO, OPACIDAD_RELLENO, 'destino');
							if (poligono1==null){drawCircle(marker1.getLatLng().lat(),marker1.getLatLng().lng() , radio_origen, COLOR_BORDE, ANCHO_BORDE, OPACIDAD_BORDE, COLOR_RELLENO, OPACIDAD_RELLENO, 'origen');}
							log(ciudad+"/busca/dragend")
							ver_recorridos(marker1.getLatLng().lat(), marker1.getLatLng().lng(), latlng.lat(), latlng.lng(), RADIO);
						}
					});					
				}
			}
			}
		}

		
		var color_polilinea = json[i][0][5];
		var polyline = new GPolyline(Gpuntos, color_polilinea, GROSOR_POLILINEA, OPACIDAD_INICIAL);
		var id=json[i][0][0];
		polyline.id=id;
		polilineas[id] = {p:polyline,seleccionado:false, color:color_polilinea, i:i};

		map.addOverlay(polyline)
	} 

	//AGREGA EL RECORRIDO CON TRASBORDO AL MAPA
	function agregarRecorridoI2(recorridos, i, cont)
	{
		var puntos = recorridos[i][1]

		var icono_t = new GIcon();
		icono_t.image = RUTA_ICONO_MARKERT;
		icono_t.iconSize = new GSize(15,26);
		icono_t.iconAnchor = new GPoint(7.5,26); 						

		Gpuntos = new Array();
		for (var j = 0; j < cont; j++) {
			var lat = parseFloat(puntos[j][2]);
			var lng = parseFloat(puntos[j][1]);
			if (j==cont-1) {
				icono_trasb1 = new GMarker(new GLatLng(lat,lng), {icon:icono_t, draggable: false, visible:false})
				map.addOverlay(icono_trasb1);
				icono_trasb1.hide();
			}
			Gpuntos.push(new GLatLng(lat, lng));
		}

		var color_polilinea = recorridos[i][0][7];
		var polyline = new GPolyline(Gpuntos, color_polilinea, GROSOR_POLILINEA, OPACIDAD_INICIAL);
		var id1=recorridos[i][0][0]+recorridos[i][0][1]+"1"
		polyline.id=id1

		marcadores_t[id1]=icono_trasb1;
		polilineas[id1] = {p:polyline, seleccionado:false, color:color_polilinea, i:i};

		map.addOverlay(polyline)


		//recorrido 2 (la combinacion)

		Gpuntos = new Array();
		for (var j = cont; j < puntos.length; j++) {
			var lat = parseFloat(puntos[j][2]);
			var lng = parseFloat(puntos[j][1]);
			if (j==cont) {
				icono_trasb2 = new GMarker(new GLatLng(lat,lng), {icon:icono_t, draggable: false, visible:false})			  
				map.addOverlay(icono_trasb2);
				icono_trasb2.hide();
			}
			Gpuntos.push(new GLatLng(lat, lng));
		}

		var color_polilinea = recorridos[i][0][8]
		var polyline = new GPolyline(Gpuntos, color_polilinea, GROSOR_POLILINEA, OPACIDAD_INICIAL);
		var id2=recorridos[i][0][0]+recorridos[i][0][1]+"2"
		polyline.id=id2

		marcadores_t[id2]=icono_trasb2;
		polilineas[id2] = {p:polyline, seleccionado:false, color:color_polilinea, i:i};

		map.addOverlay(polyline)

	} 
	
	//OBTIENE LA INFO PARA ARMAR EL INFOWINDOW (SIN TRASBORDO)
	function obtener_info_recorrido(id, latlng) {
		log(ciudad+"/infowindow/"+id)
		$.ajax({
			url: "/ver_info_recorrido.php?id=" + id,
			async: true,
			complete: function(XMLHttpRequest, textStatus){
				var xmlDoc = XMLHttpRequest.responseXML;
				var recorrido=xmlDoc.documentElement.getElementsByTagName("recorrido")[0];

				var l_nombre=recorrido.getAttribute("nombre_linea");
				var ra_nombre=recorrido.getAttribute("nombre_ramal");
				//var re_nombre=recorrido.getAttribute("nombre_recorrido");
				var re_descripcion=recorrido.getAttribute("descripcion");
				var z_inicio=recorrido.getAttribute("zona_inicio");
				var z_fin=recorrido.getAttribute("zona_fin");
				var horarios=recorrido.getAttribute("horarios");
				var terminal=recorrido.getAttribute("infoterminal");
				var empresa=recorrido.getAttribute("infoempresa");
				var foto=recorrido.getAttribute("foto");
				
                msj='[No disponible]'
                if (horarios==''){ horarios=msj };
                if (re_descripcion==''){ re_descripcion=msj };
                if (terminal==''){ terminal=msj };
                if (z_inicio==''){ z_inicio=msj };
                if (z_fin==''){ z_fin=msj };

                var html =
                    '<div class="infowindow-sin-trasbordo">'
                +        '<div class="iw-st-imagen-div">'
                +            '<img border="1" src="'+RUTA_IMG_MICRO_GRANDE+foto+'g.jpg">'
                +        '</div>'
                +        '<div class="iw-st-contenido">'
                +            '<div class="iw-st-nombre-div">'
				+				'<div><a class="iw-st-nombre">'+l_nombre+' '+ra_nombre+'</a></div>'
				+				'<div><a class="iw-st-empresa">'+empresa+'</a></div>'
                +            '</div>'
                +            '<div class="iw-st-lugares-div">'
				+				'<div><a class="iw-st-info-label">Info del recorrido:</a></div>'
				+				'<div><a class="iw-st-desde-hasta">Desde: '+z_inicio+'</a></div>'
				+				'<div><a class="iw-st-desde-hasta">Hasta: '+z_fin+'</a></div>'
				+				'<div><a class="iw-st-descripcion">Pasa por: '+re_descripcion+'</a></div>'
                +            '</div>'
                +            '<div class="iw-st-horarios-div">'
			    +				'<div><a class="iw-st-horarios-label">Horarios:</a></div>'
			    +				'<div><a class="iw-st-horarios">'+horarios+'</a></div>'
                +            '</div>'
                +            '<div class="iw-st-info-linea-div">'
			    +				'<div><a class="iw-st-info-linea-label">Información de la linea:</a></div>'
			    +				'<div><a class="iw-st-info-linea">'+terminal+'</a></div>'
                +            '</div>'
                +        '</div>'
                +    '</div>'

				map.openInfoWindowHtml(marker1.getLatLng() , html);
				map.panTo(marker1.getLatLng());
						//urlparam({i:1})			
			}                  
	    });
		if (polilineas[id].seleccionado==true){ //esta seleccionada
			clickeo_div(id);
		}
	}

	//OBTIENE LA INFO PARA EL INFOWINDOW (CON TRASBORDO)
	function obtener_info_recorrido_trasbordo(id,id1,id2){
		$.ajax({
			url: "/ver_info_recorrido_trasbordo.php?id1="+id1+"&id2="+id2,
			async: true,
			complete: function(XMLHttpRequest, textStatus){
				var xmlDoc = XMLHttpRequest.responseXML;
				var recorrido1=xmlDoc.documentElement.getElementsByTagName("recorrido")[0];
				var recorrido2=xmlDoc.documentElement.getElementsByTagName("recorrido")[1];

				//Info que llega.
				var l_nombre1=recorrido1.getAttribute("nombre_linea");
				var ra_nombre1=recorrido1.getAttribute("nombre_ramal");
				var re_nombre1=recorrido1.getAttribute("nombre_recorrido");
				var re_descripcion1=recorrido1.getAttribute("descripcion");
				var z_inicio1=recorrido1.getAttribute("zona_inicio");
				var z_fin1=recorrido1.getAttribute("zona_fin");
				var horarios1=recorrido1.getAttribute("horarios");
				var terminal1=recorrido1.getAttribute("infoterminal");
				var empresa1=recorrido1.getAttribute("infoempresa");
				var foto1=recorrido1.getAttribute("foto");

				var l_nombre2=recorrido2.getAttribute("nombre_linea");
				var ra_nombre2=recorrido2.getAttribute("nombre_ramal");
				var re_nombre2=recorrido2.getAttribute("nombre_recorrido");
				var re_descripcion2=recorrido2.getAttribute("descripcion");
				var z_inicio2=recorrido2.getAttribute("zona_inicio");
				var z_fin2=recorrido2.getAttribute("zona_fin");
				var horarios2=recorrido2.getAttribute("horarios");
				var terminal2=recorrido2.getAttribute("infoterminal");
				var empresa2=recorrido2.getAttribute("infoempresa");
				var foto2=recorrido2.getAttribute("foto");
		
				var html=
					'<div class="info-div">'
				+	'<table cellspacing="5" border="0" width="100%">'
				+		'<tr>'
				+			'<td>'
				+				'<img border="1" src="'+RUTA_IMG_MICRO_GRANDE+foto1+'g.jpg">'
				+			'</td>'
				+			'<td width="100%">'
				+				'<p class="info-titulo">1ro: '+l_nombre1+' '+ra_nombre1+'</p>'
				+				'<p>'+empresa1+'</a><br>'
				+				'<p class="info-subtitulo">Recorrido:</p>'
				+				'<p>Desde '+z_inicio1+' hasta '+z_fin1+'</p>'
				+			'</td>'
				+		'</tr>'
				+		'<tr>'
				+			'<td>'
				+				'<img border="1" src="'+RUTA_IMG_MICRO_GRANDE+foto2+'g.jpg">'
				+			'</td>'
				+			'<td width="100%">'
				+				'<p class="info-titulo">2do: '+l_nombre2+' '+ra_nombre2+'</p>'
				+				'<p>'+empresa2+'</a><br>'
				+				'<p class="info-subtitulo">Recorrido:</p>'
				+				'<p>Desde '+z_inicio2+' hasta '+z_fin2+'</p>'
				+			'</td>'
				+		'</tr>'
				+		'</table>'
				+	'</div>'

				
				map.openInfoWindowHtml(marcadores_t[id+"1"].getLatLng() , html);
				map.panTo(marcadores_t[id+"1"].getLatLng());			
			}                  
	    });
		if (polilineas[id+"1"].seleccionado==true){ //esta seleccionada
			clickeo_div2(id);
		}
	}
	
	//CUANDO CLICKEAS EN UN DIV DE LOS RESULTADOS
	function clickeo_div(id){
		log(ciudad+"/clickeoResultado/simple/"+id)
		if (polilineas[id].seleccionado==true){ //esta seleccionada
			polilineas[id].seleccionado=false;
			polilineas[id].p.setStrokeStyle({opacity:OPACIDAD_MOUSEOVER});
			$('#div'+id).attr("class", "div-mouseover"); 
			document.getElementById('lock'+id).src=RUTA_ICONO_DESELECCIONADO;
			//urlparam({selre:null})			
		}
		else{ //no esta seleccionada
			for (id2 in polilineas)
				if (polilineas[id2].seleccionado) {
					polilineas[id2].seleccionado=false;
					polilineas[id2].p.setStrokeStyle({opacity:OPACIDAD_INICIAL});
					$('#div'+id2).attr("class", "div-inicial"); 
					document.getElementById('lock'+id2).src=RUTA_ICONO_DESELECCIONADO;
				}
			polilineas[id].seleccionado=true;
			polilineas[id].p.setStrokeStyle({opacity:OPACIDAD_SELECCIONADO}); 
			$('#div'+id).attr("class", "div-seleccionado"); 
			document.getElementById('lock'+id).src=RUTA_ICONO_SELECCIONADO;
			//urlparam({selre:id})
		}	
	}

	function clickeo_div2(id){
		log(ciudad+"/clickeoResultado/transbordo/"+id)
		if (polilineas[id+"1"].seleccionado==true){ //esta seleccionada
			polilineas[id+"1"].seleccionado=false;
			polilineas[id+"1"].p.setStrokeStyle({opacity:OPACIDAD_MOUSEOVER});
			polilineas[id+"2"].seleccionado=false;
			polilineas[id+"2"].p.setStrokeStyle({opacity:OPACIDAD_MOUSEOVER});
			$('#div'+id).attr("class", "div-mouseover"); 
			document.getElementById('lock'+id).src=RUTA_ICONO_DESELECCIONADO;
			//urlparam({selre:null})

		    marcadores_t[id+"1"].hide();
		    marcadores_t[id+"2"].hide();
		}
		else{ //no esta seleccionada
			for (id2 in polilineas)
				if (polilineas[id2].seleccionado) {
					polilineas[id2].seleccionado=false;
					polilineas[id2].p.setStrokeStyle({opacity:OPACIDAD_INICIAL});
					$('#div'+id2.substring(0,id2.length-1)).attr("class", "div-inicial"); 
					document.getElementById('lock'+id2.substring(0,id2.length-1)).src=RUTA_ICONO_DESELECCIONADO;

		            marcadores_t[id2].hide();
		            marcadores_t[id2].hide();
				}
			polilineas[id+"1"].seleccionado=true;
			polilineas[id+"1"].p.setStrokeStyle({opacity:OPACIDAD_SELECCIONADO}); 
			polilineas[id+"2"].seleccionado=true;
			polilineas[id+"2"].p.setStrokeStyle({opacity:OPACIDAD_SELECCIONADO}); 
			$('#div'+id).attr("class", "div-seleccionado"); 
			document.getElementById('lock'+id).src=RUTA_ICONO_SELECCIONADO;
			//urlparam({selre:id})

		    marcadores_t[id+"1"].show();
		    marcadores_t[id+"2"].show();
            
		}	
	}

    function caminar_mas(lat1, lng1, lat2, lng2, rad){
		log(ciudad+"/busca/caminar_mas")
        radio_origen = 600;
        radio_destino = 600;  
        $("#slider-origen").slider( "value" , 600 )
        $("#slider-destino").slider( "value" , 600 )
        $("#a-cantidad-origen").html("600" + 'Mts.');
        $("#a-cantidad-destino").html("600" + 'Mts.');
		if (poligono1!=null){
			map.removeOverlay(poligono1)
			drawCircle(marker1.getLatLng().lat(),marker1.getLatLng().lng() , radio_origen, COLOR_BORDE, ANCHO_BORDE, OPACIDAD_BORDE, COLOR_RELLENO, OPACIDAD_RELLENO, 'origen');
    	}
		if (poligono2!=null){
			map.removeOverlay(poligono2);
			drawCircle(marker2.getLatLng().lat(),marker2.getLatLng().lng() , radio_destino, COLOR_BORDE, ANCHO_BORDE, OPACIDAD_BORDE, COLOR_RELLENO, OPACIDAD_RELLENO, 'destino');
	    }     
        ver_recorridos(lat1, lng1, lat2, lng2, rad);
    }

    function aumentar_radios_busqueda(lat1, lng1, lat2, lng2, rad){
        $.ajax({
			url: "/ver_recorridos.php?lat1=" + lat1 + "&lng1=" + lng1 + "&lat2=" + lat2 + "&lng2=" + lng2 + "&ro=" + "600" + "&rd=" + "600",
			async: true,
            dataType: "json",
			complete: function(HttpRequest, textStatus){
				var response = HttpRequest.responseText.substring(11, HttpRequest.responseText.length-1);
				if (response!=null){
                    json = p($.parseJSON(response));
					var recorridos = json[1];       
                    if (recorridos.length>0){
                        $('#resultados').html('<div class="div-inicial" align="center"><p style="font-weight:bold;">Si acepta caminar un poco más, hay recorridos directos disponibles.</p><br><p>¿Desea caminar algunos metros mas pero tomar un solo colectivo? Presione el botón para aceptar</p><br><button onclick="javascript:CB.caminar_mas('+lat1+', '+lng1+', '+lat2+', '+lng2+', '+rad+')"><img src="/img/tilde.png">Caminar más</button><br><br><p style="font-weight:bold;">Si no desea caminar más, puede buscar recorridos con trasbordo</p><br><p>Presione el botón para realizar una búsqueda de transportes combinados (con transbordo)</p><br><button onclick="javascript:CB.ver_recorridos2('+lat1+', '+lng1+', '+lat2+', '+lng2+', '+rad+')"><img src="'+RUTA_IMG_BUSCAR+'"> Buscar con Transbordo</button></div>');
                    }else{
                        $('#resultados').html('<div class="div-inicial" align="center"><p style="font-weight:bold;">Lo sentimos, no se encontraron resultados de transportes directos</p><br><p>Presione el botón para realizar una búsqueda de transportes combinados (con transbordo)</p><br><button onclick="javascript:CB.ver_recorridos2('+lat1+', '+lng1+', '+lat2+', '+lng2+', '+rad+')"><img src="'+RUTA_IMG_BUSCAR+'"> Buscar con Transbordo</button></div>');
                    }
                }
            }
        });
    }

	//BUSCA LOS RECORRIDOS SIN TRASBORDO
	function ver_recorridos(lat1, lng1, lat2, lng2, rad)
	{
		outerLayout.open('east'); //ABRE EL PANEL DERECHO (RESULTADOS)
		$('#footer').html('Esperando busqueda...');
		$('#resultados').html('<div align="center"><img style="margin:10px;" src="'+RUTA_AJAX_LOADING+'"></div>');
		if (ajax_get_recorrido!=null) ajax_get_recorrido.abort();
        ajax_get_recorrido = $.ajax({
			url: "/ver_recorridos.php?lat1=" + lat1 + "&lng1=" + lng1 + "&lat2=" + lat2 + "&lng2=" + lng2 + "&ro=" + radio_origen + "&rd=" + radio_destino,
			async: true,
            dataType: "json",
			complete: function(HttpRequest, textStatus){
				var response = HttpRequest.responseText.substring(11, HttpRequest.responseText.length-1);
				if (response!=null){
                    //get_publicidad()
                    json = p($.parseJSON(response));
					var recorridos = json[1];
		            anterior = json[0][4];
		            siguiente = json[0][5];
					desde = parseInt(json[0][6])+1;
					hasta = parseInt(json[0][7])+1;
					total = parseInt(json[0][8]);
					if (hasta > total){ hasta=total; }

					for (id in polilineas)
						map.removeOverlay(polilineas[id].p);

					for (id in marcadores_t)
						map.removeOverlay(marcadores_t[id]);

					if (icono_ini!=null){
						map.removeOverlay(icono_ini);	
						map.removeOverlay(icono_fin);
					}  
		
					polilineas = new Array(); 
					marcadores_t = new Array();					

					if (recorridos.length == 0) {
                 			        aumentar_radios_busqueda(lat1, lng1, lat2, lng2, rad);
					}
					else {
						agregar_recorridos(recorridos)
					}
				}
				
				//urlparam( { lat1:lat1 , lng1:lng1 , lat2:lat2 , lng2:lng2 , rad:rad , t:"1"} )			
			}                  
	    });  
	}


	//BUSCA RECORRIDOS CON TRASBORDO
	function ver_recorridos2(lat1, lng1, lat2, lng2, rad){
		outerLayout.open('east'); //ABRE EL PANEL DERECHO (RESULTADOS)
		$('#footer').html('Esperando busqueda...');
		$('#resultados').html('<div align="center"><img style="margin:10px;" src="'+RUTA_AJAX_LOADING+'"></div>');
		if (ajax_ver_recorrido2!=null) ajax_ver_recorrido2.abort();
		if (ajax_ver_recorrido!=null) ajax_ver_recorrido.abort();
        ajax_ver_recorrido2 = $.ajax({
			url: "/ver_recorridos2.php?lat1=" + lat1 + "&lng1=" + lng1 + "&lat2=" + lat2 + "&lng2=" + lng2 + "&ro=" + radio_origen + "&rd=" + radio_destino + "&pag=" + pagina_actual,
			async: true,
            dataType: "json",
			complete: function(HttpRequest, textStatus){
				var response = HttpRequest.responseText.substring(11, HttpRequest.responseText.length-1);
				if (response!=null){
                    //get_publicidad()
                    response = p($.parseJSON(response))
					var recorridos = response[1];
		            anterior = response[0][4]
		            siguiente = response[0][5]
					desde = parseInt(response[0][6])+1;
					hasta = parseInt(response[0][7])+1;
					total = parseInt(response[0][8]);
					if (hasta > total){ hasta=total; }

					//for (var i = 0; i < polilineas.length; i++)
					for (id in polilineas)
						map.removeOverlay(polilineas[id].p);  ////ERROR ACA///
					
					for (id in marcadores_t)
						map.removeOverlay(marcadores_t[id]);
						
					polilineas = new Array(); 
					marcadores_t=new Array();
					if (recorridos.length == 0) {
						$('#resultados').html('<div class="div-inicial" align="center"><p style="font-weight:bold;">Lo sentimos, no se encontraron resultados de transportes</p><br><p>Puede intentar restringiendo menos la cantidad de metros maxima a caminar</p></div>');
					}
					else {
						agregar_recorridos_trasbordo(recorridos);
					}
				}
				//urlparam( { lat1:lat1 , lng1:lng1 , lat2:lat2 , lng2:lng2 , rad:rad , t:"2"} )
				for (id in polilineas) if (polilineas[id].i == 0) {clickeo_div2(id.substring(0, id.length-1)); break;} //selecciona la primer polilinea			
			}                  
	    });  
	}

	function map_listener_function(overlay, latlng) { 
		if (latlng) {
			if (marker1==null){
				for (var j = 0; j < marcadores.length; j++) map.removeOverlay(marcadores[j].m); //Borro todos los marcadores
				marcadores=new Array();

				var iconA = new GIcon();
				iconA.image = RUTA_ICONO_MARKERA;
				iconA.iconSize = new GSize(20,34);
				iconA.iconAnchor = new GPoint(10,34);
				marker1 = new GMarker(latlng, {icon:iconA, draggable: true});
				drawCircle(marker1.getLatLng().lat(),marker1.getLatLng().lng() , radio_origen, COLOR_BORDE, ANCHO_BORDE, OPACIDAD_BORDE, COLOR_RELLENO, OPACIDAD_RELLENO, 'origen');
				
				marcadores.push({m:marker1, lat:latlng.lat(), lng:latlng.lng()});
				map.addOverlay( marker1 );
				GEvent.addListener(marker1, "dragstart", function(latlng) {
					if (poligono1!=null){ map.removeOverlay(poligono1); }
				}); 
				GEvent.addListener(marker1, "dragend", function(latlng) {
					drawCircle(marker1.getLatLng().lat(),marker1.getLatLng().lng() , radio_origen, COLOR_BORDE, ANCHO_BORDE, OPACIDAD_BORDE, COLOR_RELLENO, OPACIDAD_RELLENO, 'origen');
					if (poligono2==null && marker2!=null){drawCircle(marker2.getLatLng().lat(),marker2.getLatLng().lng() , radio_destino, COLOR_BORDE, ANCHO_BORDE, OPACIDAD_BORDE, COLOR_RELLENO, OPACIDAD_RELLENO, 'destino');}
					if (marker2!=null){
						log(ciudad+"/busca/dragend")
						ver_recorridos(latlng.lat(), latlng.lng(), marker2.getLatLng().lat(), marker2.getLatLng().lng(), RADIO);
					}
				});
			}else{
				if (marker1!=null && marker2==null){
					var iconB = new GIcon();
					iconB.image = RUTA_ICONO_MARKERB;
					iconB.iconSize = new GSize(20,34);
					iconB.iconAnchor = new GPoint(10,34);
					marker2 = new GMarker(latlng, {icon:iconB, draggable: true});
					drawCircle(marker2.getLatLng().lat(),marker2.getLatLng().lng() , radio_destino, COLOR_BORDE, ANCHO_BORDE, OPACIDAD_BORDE, COLOR_RELLENO, OPACIDAD_RELLENO, 'destino');
				
					marcadores.push({m:marker2, lat:latlng.lat(), lng:latlng.lng()});
					map.addOverlay( marker2 );
					GEvent.addListener(marker2, "dragstart", function(latlng) {
						if (poligono2!=null){ map.removeOverlay(poligono2); }
					});  
					GEvent.addListener(marker2, "dragend", function(latlng) {
						drawCircle(marker2.getLatLng().lat(),marker2.getLatLng().lng() , radio_destino, COLOR_BORDE, ANCHO_BORDE, OPACIDAD_BORDE, COLOR_RELLENO, OPACIDAD_RELLENO, 'destino');
						if (poligono1==null && marker1!=null){drawCircle(marker1.getLatLng().lat(),marker1.getLatLng().lng() , radio_origen, COLOR_BORDE, ANCHO_BORDE, OPACIDAD_BORDE, COLOR_RELLENO, OPACIDAD_RELLENO, 'origen');}
						if (marker1!=null){
							log(ciudad+"/busca/dragend")
							ver_recorridos(marker1.getLatLng().lat(), marker1.getLatLng().lng(), latlng.lat(), latlng.lng(), RADIO);
						}
					});
					log(ciudad+"/busca/click_mapa")
					ver_recorridos(marker1.getLatLng().lat(), marker1.getLatLng().lng(), latlng.lat(), latlng.lng(), RADIO);
					GEvent.removeListener(click_listener)
					click_listener=null;
				}
			}
		};
	}

	function poner_marker_en_mapa(lat, lng, od){
		if (od=='origen'){
			if (marker1!=null) { map.removeOverlay(marker1) }
			if (poligono1!=null){map.removeOverlay(poligono1);}
			var iconA = new GIcon();
			iconA.image = RUTA_ICONO_MARKERA;
			iconA.iconSize = new GSize(20,34);
			iconA.iconAnchor = new GPoint(10,34);
			marker1 = new GMarker(new GLatLng( lat, lng ), {icon:iconA, draggable: true});				
			map.addOverlay(marker1);
			drawCircle(marker1.getLatLng().lat(),marker1.getLatLng().lng() , radio_origen, COLOR_BORDE, ANCHO_BORDE, OPACIDAD_BORDE, COLOR_RELLENO, OPACIDAD_RELLENO, 'origen');
			GEvent.addListener(marker1, "dragstart", function(latlng) {
				if (poligono1!=null){map.removeOverlay(poligono1)}
			});
			GEvent.addListener(marker1, "dragend", function(latlng) {
				drawCircle(marker1.getLatLng().lat(),marker1.getLatLng().lng() , radio_origen, COLOR_BORDE, ANCHO_BORDE, OPACIDAD_BORDE, COLOR_RELLENO, OPACIDAD_RELLENO, 'origen');
				if (poligono2==null && marker2!=null){drawCircle(marker2.getLatLng().lat(),marker2.getLatLng().lng() , radio_destino, COLOR_BORDE, ANCHO_BORDE, OPACIDAD_BORDE, COLOR_RELLENO, OPACIDAD_RELLENO, 'destino');}
				if (marker2!=null){
					log(ciudad+"/busca/dragend")
					ver_recorridos(latlng.lat(), latlng.lng(), marker2.getLatLng().lat(), marker2.getLatLng().lng(), RADIO);
				}
			});
		}
		if (od=='destino'){
			if (marker2!=null) { map.removeOverlay(marker2) }
			if (poligono2!=null){map.removeOverlay(poligono2)}
			var iconB = new GIcon();
			iconB.image = RUTA_ICONO_MARKERB;
			iconB.iconSize = new GSize(20,34);
			iconB.iconAnchor = new GPoint(10,34);
			marker2 = new GMarker(new GLatLng( lat, lng ), {icon:iconB, draggable: true});
			map.addOverlay( marker2 );
			drawCircle(marker2.getLatLng().lat(),marker2.getLatLng().lng() , radio_destino, COLOR_BORDE, ANCHO_BORDE, OPACIDAD_BORDE, COLOR_RELLENO, OPACIDAD_RELLENO, 'destino');
			GEvent.addListener(marker2, "dragstart", function(latlng) {
				if (poligono2!=null){ map.removeOverlay(poligono2); }
			});  
			GEvent.addListener(marker2, "dragend", function(latlng) {
				drawCircle(marker2.getLatLng().lat(),marker2.getLatLng().lng() , radio_destino, COLOR_BORDE, ANCHO_BORDE, OPACIDAD_BORDE, COLOR_RELLENO, OPACIDAD_RELLENO, 'destino');
				if (poligono1==null && marker1!=null){drawCircle(marker1.getLatLng().lat(),marker1.getLatLng().lng() , radio_origen, COLOR_BORDE, ANCHO_BORDE, OPACIDAD_BORDE, COLOR_RELLENO, OPACIDAD_RELLENO, 'origen');}
				if (marker1!=null){
					log(ciudad+"/busca/dragend")
					ver_recorridos(marker1.getLatLng().lat(), marker1.getLatLng().lng(), latlng.lat(), latlng.lng(), RADIO);
				}
			}); 
		}
        map.panTo(new GLatLng(lat,lng));
	}

	function agregar_markers_elegidos(){
		input_tags_o=document.getElementsByTagName('input');
		for (var i=0 ; i<input_tags_o.length ; i++){
			if (input_tags_o[i].getAttribute('type') == 'radio') {
				if (input_tags_o[i].name=='origen' && input_tags_o[i].checked==true){
					var latlng_o = input_tags_o[i].value.split(" ");

					input_tags_d=document.getElementsByTagName('input');
					for (var i=0 ; i<input_tags_d.length ; i++){
						if (input_tags_d[i].getAttribute('type') == 'radio') {
							if (input_tags_d[i].name=='destino' && input_tags_d[i].checked==true){
								var latlng_d = input_tags_d[i].value.split(" ");
								ver_recorridos(latlng_o[0], latlng_o[1], latlng_d[0], latlng_d[1], RADIO);
							}
						}
					}
				}
			}
		}
	}

	//CUANDO APRETAN EL BOTON DE BUSCAR
	function buscar(){
		outerLayout.open('east'); //ABRE EL PANEL DERECHO (RESULTADOS)
		$('#footer').html('Esperando busqueda...');
		$('#resultados').html('<div align="center"><img style="margin:10px;" src="'+RUTA_AJAX_LOADING+'"></div>');
		var entry_o = $('#origen').val();
		var entry_d = $('#destino').val();
		$.ajax({
			url: "/buscar.php?o=" + entry_o + "&d=" + entry_d + "&ro=" + radio_origen + "&rd=" + radio_destino + "&ci=" + window.location.pathname.split("/")[1],
			async: true,
            dataType: "json",
			complete: function(HttpRequest, textStatus){

                var response = HttpRequest.responseText;

				for (id in polilineas)
					map.removeOverlay(polilineas[id].p);
			    for (id in marcadores_t)
				    map.removeOverlay(marcadores_t[id]);
				if (icono_ini!=null){
					map.removeOverlay(icono_ini);	
					map.removeOverlay(icono_fin);
				}  

				polilineas = new Array(); 
				marcadores_t = new Array();	

				switch ( response.charAt(0) ) {
				case '[':
					// es JSON, son varias chances...
					
					var lista1 = jQuery.parseJSON( response.slice(0, response.indexOf(']')+1) );

					$('#resultados').html('Origen: Quiso decir...?<br>');
					for (var i=0; i < lista1.length; i++)  
						$('#resultados').html($('#resultados').html() + '<input type="radio" name="origen" value="'+lista1[i].point.lat+' '+lista1[i].point.lng+'" onclick="javascript:CB.poner_marker_en_mapa( \''+lista1[i].point.lat+'\',\''+lista1[i].point.lng+'\',\'origen\')">' +lista1[i].nombre + '<br>');
					if (lista1.length == 0 ) $('#resultados').html( $('#resultados').html() + 'No se encontraron resultados' );

					var lista2 = jQuery.parseJSON( response.slice(response.indexOf(']')+1) );

					$('#resultados').html( $('#resultados').html() + '<hr>Destino: Quiso decir...?<br>' );
					for (var i=0; i < lista2.length; i++)  
						$('#resultados').html($('#resultados').html() + '<input type="radio" name="destino" value="'+lista2[i].point.lat+' '+lista2[i].point.lng+'" onclick="javascript:CB.poner_marker_en_mapa( \''+lista2[i].point.lat+'\',\''+lista2[i].point.lng+'\',\'destino\')">' +lista2[i].nombre + '<br>');
					if (lista2.length == 0 ) $('#resultados').html( $('#resultados').html() + 'No se encontraron resultados' );

					$('#resultados').html( $('#resultados').html() + '<br><button onclick="javascript:CB.agregar_markers_elegidos()"><img src="/img/tilde.png">Aceptar!</button>' );

				break;
				case 'w':
					// es XML, la pego de una, estan viniendo los resultados directamente...
                    response = HttpRequest.responseText.substring(11, HttpRequest.responseText.length-1);
                    response = p($.parseJSON(response))

					if (response!=null){
						var lat1 = response[0][0]
						var lng1 = response[0][1]
						var lat2 = response[0][2]
						var lng2 = response[0][3]

		                anterior = response[0][4]
		                siguiente = response[0][5]
						desde = parseInt(response[0][6])+1;
						hasta = parseInt(response[0][7])+1;
						total = parseInt(response[0][8]);
						if (hasta > total){ hasta=total; }

						poner_marker_en_mapa( lat1, lng1, 'origen')
						poner_marker_en_mapa( lat2, lng2, 'destino')
						var recorridos = response[1]
				
						if (recorridos.length == 0) {
							//$('#resultados').html('<div class="div-inicial" align="center"><p style="font-weight:bold;">Lo sentimos, no se encontraron resultados de transportes directos</p><br><p>Presione el botón para realizar una búsqueda de transportes combinados (con transbordo)</p><br><button onclick="javascript:CB.ver_recorridos2('+lat1+', '+lng1+', '+lat2+', '+lng2+', 300)"><img src="'+RUTA_IMG_BUSCAR+'"> Buscar con Transbordo</button></div>');
	                 			        aumentar_radios_busqueda(lat1, lng1, lat2, lng2, 300);
						}
						else {
							agregar_recorridos(recorridos)
						}
					}
				break;
				case '1':
					$('#resultados').html('<div class="div-inicial"><p align="center" style="font-weight:bold;">Lo sentimos, no se encontró la calle de origen</p><br><p>Intente buscar nuevamente ingresando la dirección como en los siguientes ejemplos: <br> 11 y 62 <br> 7 n 1234 </p><br><br><p>Si esto no funciona tal vez no tengamos la información suficiente para hallar la dirección ingresada, puede tambien mover los puntos A y B del mapa para realizar una busqueda de recorridos. Si los puntos A y/o B no se encuentran en el mapa, puede hacer click sobre el mapa para posicionarlos.</p></div>');
				break;
				case '2':
					$('#resultados').html('<div class="div-inicial"><p align="center" style="font-weight:bold;">Lo sentimos, no se encontró la calle de destino</p><br><p>Intente buscar nuevamente ingresando la dirección como en los siguientes ejemplos: <br> 11 y 62 <br> 7 n 1234 </p><br><br><p>Si esto no funciona tal vez no tengamos la información suficiente para hallar la dirección ingresada, puede tambien mover los puntos A y B del mapa para realizar una busqueda de recorridos. Si los puntos A y/o B no se encuentran en el mapa, puede hacer click sobre el mapa para posicionarlos.</p></div>');
				break;
				case '3':
					$('#resultados').html('<div class="div-inicial"><p align="center" style="font-weight:bold;">Lo sentimos, no se encontraron las calles de origen ni destino</p><br><p>Intente buscar nuevamente ingresando las direcciones como en los siguientes ejemplos: <br> 11 y 62 <br> 7 n 1234 </p><br><br><p>Si esto no funciona tal vez no tengamos la información suficiente para hallar la dirección ingresada, puede tambien mover los puntos A y B del mapa para realizar una busqueda de recorridos. Si los puntos A y/o B no se encuentran en el mapa, puede hacer click sobre el mapa para posicionarlos.</p></div>');
				break;
				default:
					$('#resultados').html('<div class="div-inicial"><p align="center" style="font-weight:bold;">Lo sentimos, no se encontraron las calles de origen ni destino por un error interno de la pagina</p><br><p>Intente buscar nuevamente ingresando las direcciones como en los siguientes ejemplos: <br> 11 y 62 <br> 7 n 1234 </p><br><br><p>Si esto no funciona tal vez no tengamos la información suficiente para hallar la dirección ingresada, puede tambien mover los puntos A y B del mapa para realizar una busqueda de recorridos. Si los puntos A y/o B no se encuentran en el mapa, puede hacer click sobre el mapa para posicionarlos.</p></div>');
				break;
				}			
			}                  
	    });  
	}

	//PARA AGARRAR LOS PARAMETROS QUE LLEGAN POR GET
	function gup( name )
	{
		name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
		var regexS = "[\\?&]"+name+"=([^&#]*)";
		var regex = new RegExp( regexS );
		var results = regex.exec( window.location.href );
		if( results == null )
			return "";
		else
			return results[1];
	}
	
	//PARA AGREGAR DATOS A LA URL
	function urlparam(params)
	{
		var url=window.location.href;

		for (id in params)
		{
			id = id.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
			var regexS = id;
			regex = new RegExp( "([^\\0]*"+id+"=)[^&]*([\\0]*)")
			var results = regex.exec( url );
			if ( results == null )
				if (url.indexOf("#")==-1)
					url=url+"#"+id+"="+params[id]
				else
					url=url+"&"+id+"="+params[id]
			else {
				url = results[1]+params[id]+results[2]
			}
		}
		window.location.href=url;
	}
	

	return {
		ver_ayuda : function(){ ver_ayuda() },
		boton_buscar : function(){ boton_buscar() },
		accordion1 : function(){ accordion1() },
		accordion2 : function(){ accordion2() },
		accordion4 : function(){ accordion4() },
		accordion5 : function(){ accordion5() },
		actualizar_mapa : function(){ actualizar_mapa() },
		intercambiar_od : function(){ intercambiar_od() },
		limpiar_mapa : function(){ limpiar_mapa() },
		exportar_PDF : function(){ exportar_PDF() },
		cambiar_pagina : function(a){ cambiar_pagina(a) },
		cambiar_pagina_trasbordo : function(a){ cambiar_pagina_trasbordo(a) },
		clickeo_div : function(a){ clickeo_div(a) },
		clickeo_div2 : function(a){ clickeo_div2(a) },
		obtener_info_recorrido : function(a,b){ obtener_info_recorrido(a,b) },
		obtener_info_recorrido_trasbordo : function(a,b,c){ obtener_info_recorrido_trasbordo(a,c,b) },
		poner_marker_en_mapa : function(a,b,c){ poner_marker_en_mapa(a,b,c) },
		agregar_markers_elegidos : function(){ agregar_markers_elegidos() },
		ver_recorridos : function(a,b,c,d,e){ ver_recorridos(a,b,c,d,e) },
		ver_recorridos2 : function(a,b,c,d,e){ ver_recorridos2(a,b,c,d,e) },
		sumar_click : function(a){ sumar_click(a) },
		get_recorrido : function(a){ get_recorrido(a) },
		caminar_mas : function(a,b,c,d,e){ caminar_mas(a,b,c,d,e) }
	}


}();

