    var map, layer, nav, panel;
		
        function init(){

            var options = {
                projection: new OpenLayers.Projection("EPSG:900913"),
                displayProjection: new OpenLayers.Projection("EPSG:4326"),
				numZoomLevels:20,
				
                units: "m",
				maxResolution: 156543.0339,
                maxExtent: new OpenLayers.Bounds(-20037508.34, -20037508.34,20037508.34, 20037508.34)

            };

            OpenLayers.ProxyHost="/proxy/?url=";

            map = new OpenLayers.Map('map', options, { controls: [new OpenLayers.Control.PanZoom()] });
			// map.addControl(new OpenLayers.Control.MousePosition());



            zb = new OpenLayers.Control.ZoomBox(
                {title:"Zoom box: Selecting it you can zoom on an area by clicking and dragging."});
            var panel = new OpenLayers.Control.Panel({defaultControl: zb});
            panel.addControls([
                new OpenLayers.Control.MouseDefaults(
                    {title:'You can use the default mouse configuration'}), 
                zb
            ]);
            map.addControl(panel);



nav = new OpenLayers.Control.NavigationHistory();
                // parent control must be added to the map
                map.addControl(nav);

                panel = new OpenLayers.Control.Panel(
                    {div: document.getElementById("olControlPanel")}
                );
                panel.addControls([nav.next, nav.previous]);
                map.addControl(panel);


navi = new OpenLayers.Control.PanZoom();
map.addControl(navi);

			//OPENSTREET MAPS
            var mapnik = new OpenLayers.Layer.TMS(
                "OpenStreetMap (Mapnik)",
                "http://tile.openstreetmap.org/",
                {
                    type: 'png', getURL: osm_getTileURL,
                    displayOutsideMaxExtent: true,
                    attribution: '<a href="http://www.openstreetmap.org/">OpenStreetMap</a>'
                }
            );

			var osmarender = new OpenLayers.Layer.TMS(
				"OpenStreetMap",
				"http://tah.openstreetmap.org/Tiles/tile/",
				{
					type: 'png', getURL: osm_getTileURL,
					displayOutsideMaxExtent: true,
					attribution: '<a href="http://www.openstreetmap.org/">OpenStreetMap</a>'
				}
			);



var ghyb = new OpenLayers.Layer.Google(
                "Google Hybrid",
                {type: G_HYBRID_MAP, numZoomLevels: 20, sphericalMercator:true}
            );
		map.addLayer(ghyb);	

var gmap = new OpenLayers.Layer.Google(
                "Google Streets", // the default
                {numZoomLevels: 20, sphericalMercator:true}
            );
map.addLayer(gmap);
			


            map.addLayer(osmarender);

map.addLayer(new OpenLayers.Layer.GML("Salas", "salas.kml", 
               {
                format: OpenLayers.Format.KML, 
                projection: map.displayProjection,
                formatOptions: {
                  extractStyles: true, 
                  extractAttributes: true
                }
               }));



// vlayer = new OpenLayers.Layer.Vector( "Editable" );
   //         map.addLayer(vlayer);
            
            





// var panelo = new OpenLayers.Control.NavToolbar();
// map.addControl(panelo);

            selectControl = new OpenLayers.Control.SelectFeature(map.layers[3],{onSelect: onFeatureSelect, onUnselect: onFeatureUnselect});
            map.addControl(selectControl);
            selectControl.activate();  




			var navcontrol = new OpenLayers.Control.PanZoomBar ()


map.zoomToExtent(new OpenLayers.Bounds(-76.0,8.0,-26.0,-38.0).transform(map.displayProjection, map.projection));
            map.addControl(new OpenLayers.Control.LayerSwitcher());
		// map.addControl(new OpenLayers.Control.MousePosition());

        }
		
function onPopupClose(evt) {
            selectControl.unselect(selectedFeature);
        }
        function onFeatureSelect(feature) {
            selectedFeature = feature;
            popup = new OpenLayers.Popup.FramedCloud("chicken", 
                                     feature.geometry.getBounds().getCenterLonLat(),
                                     new OpenLayers.Size(100,100),
                                     ""+feature.attributes.name + "" + feature.attributes.description,
                                     null, true, onPopupClose);
            feature.popup = popup;
            map.addPopup(popup);
        }
        function onFeatureUnselect(feature) {
            map.removePopup(feature.popup);
            feature.popup.destroy();
            feature.popup = null;
        }

        function osm_getTileURL(bounds) {
            var res = this.map.getResolution();
            var x = Math.round((bounds.left - this.maxExtent.left) / (res * this.tileSize.w));
            var y = Math.round((this.maxExtent.top - bounds.top) / (res * this.tileSize.h));
            var z = this.map.getZoom();
            var limit = Math.pow(2, z);

            if (y < 0 || y >= limit) {
                return OpenLayers.Util.getImagesLocation() + "404.png";
            } else {
                x = ((x % limit) + limit) % limit;
                return this.url + z + "/" + x + "/" + y + "." + this.type;
            }
        }

