* SAPO specific version of HordeMap javascript.
*
* Copyright 2009-2010 The Horde Project (http://www.horde.org/)
- *
* See the enclosed file COPYING for license information (GPL). If you
* did not receive this file, see http://www.fsf.org/copyleft/gpl.html.
*
* @author Michael J. Rubinsky <mrubinsk@horde.org>
- */
-
-/* Include the sapo maps javascript */
-document.write('<script src="http://js.sapo.pt/Bundles/SAPOMapsAPI-1.1.js"></script>');
-
-
-
-var isIE = (/MSIE (\d+\.\d+);/.test(navigator.userAgent));
+ * @João Machado <joao.machado@co.sapo.pt>
+*/
HordeMap.Map.SAPO = Class.create({
- map: null,
- mapMarker: null,
- markers: [],
- markersLayer: null,
-
- selectedMarker: null,
- addingAMarker: false,
- imgDiv: null,
- updateImgDivFunc: null,
- cancelFunc: null,
- firstUpdate: true,
- markerOut: true,
- lockMarker: false,
- panTimer: null,
- borders: null,
- BORDER_TOP: 120,
- BORDER_LEFT: 25,
- BORDER_BOTTOM: 5,
- BORDER_RIGHT: 10,
- MOVE_X: 100,
- MOVE_Y: 100,
- TIMER_INTERVAL: 100,
- search: null,
- navigation: null,
- sliderOpen: 0,
- markAction: 0,
-
-// COMPARE WITH: /fasmounts/webmail/www/mai.webmail.labs.sapo.pt/webmail/sapoMapas/js/sapoMapasWidget.js :>> function init(){
- initialize: function(opts)
- {
-
- var o = {
- showLayerSwitcher: true,
- delayed: false,
- layers: [],
- fallThrough: false
- };
-
- this.opts = Object.extend(o, opts || {});
-
-
- this.borders = {left:10, top:50, right:10, bottom:10};
-
- this.map = new SAPO.Maps.Map('kronolithEventMap',this.opts);
-
- this.map.zoomTo(5);
-
- if (!window.isIE) {
- this.map.setMapCenter(new OpenLayers.LonLat(-16.652530624659608, 37.288788193170646));
- }
-
- this.map.addControl(new SAPO.Maps.Control.MapType2());
- this.navigation = new SAPO.Maps.Control.Navigation2()
- this.map.addControl(this.navigation);
-
- this.markersLayer = new SAPO.Maps.Markers('Markers');
- this.map.addMarkers(this.markersLayer);
-
- OpenLayers.Util.extend(this, opts);
-
- this.search = new SAPO.Maps.Search(this.map, 'kronolithEventResults', { borders : {left: 260, top:40} });
- this.search.registerEvent('completed',this, this._onCompleted);
- this.search.registerEvent('timeout',this, this._onTimeOut);
- this.search.registerEvent('error',this, this._onError);
- this.search.registerEvent('selected', this, this._onSelected);
-
- this.closeSliderDiv = $('closeSlider');
- this.closeSliderDiv.onclick = this.removeSearch.bindAsEventListener(this, 'click');
- this.openSliderDiv = $('openSlider');
- this.openSliderDiv.onclick = this.openSlider.bindAsEventListener(this, 'click');
- },
-
- searchPOIs: function(evt) {
-
- OpenLayers.Event.observe($('kronolithEventResults'), 'click', OpenLayers.Event.stop);
- OpenLayers.Event.observe($('kronolithEventResults'), 'dblclick', OpenLayers.Event.stop);
- OpenLayers.Event.observe($('kronolithEventResults'), 'mousemove', OpenLayers.Event.stop);
-
- this.clearResults();
- var query = $F('kronolithEventLocation');
- if(query.length == 0) return false;
- this.lastSearch=query;
- this.sliderOpen = 0;
- this.openSlider('click');
- this.search.search(query, { showDashboard : false, categorizedSearch: true, resultsPerPage : 3, allowPaging: true } );
- },
-
- clearResults: function(){
- if (this.search == null) return;
- this.search.cancel();
- this.search.clear();
- },
-
-
- _onSelected: function (search) {
- var index = search.selectedIdx;
- document.getElementById('kronolithEventLocationLon').value = search.pois[0].POIs[index].Longitude;
- document.getElementById('kronolithEventLocationLat').value = search.pois[0].POIs[index].Latitude;
- },
-
- _onCompleted: function (pois)
- {
- if(!this.search.getTotalResults()) {
- KronolithCore.showNotifications([ { type: 'horde.warning', message: 'O SAPO Mapas ainda não suporta endereços fora de Portugal. Por favor confirme se digitou correctamente o endereço.' } ]);
- }
- },
-
-
- openSlider: function (evt)
- {
- if(this.sliderOpen)
- {
- evt = evt || window.event;
- OpenLayers.Event.stop(evt);
-
- this.navigation.div.style.left = '10px';
- $('kronolithEventResults').style.marginLeft='-202px';
- this.sliderOpen = 0;
- }
- else
- {
- if (this.navigation == null) return;
- this.navigation.div.style.left = '220px';
- $('kronolithEventResults').style.marginLeft='0px';
- $('kronolithEventResults').style.display='block';
- this.sliderOpen = 1;
- }
- },
-
- removeSearch: function (evt)
- {
- this.navigation.div.style.left = '10px';
- evt = evt || window.event;
- OpenLayers.Event.stop(evt);
- this.sliderOpen = 0;
- $('kronolithEventResults').style.display='none';
- this._removeMarkers();
- this.clearResults();
- },
-
- /**
- * Set the map center and zoom level.
- *
- * @param object p {lon:, lat:}
- * @param integer z Zoom level
- *
- * @return void
- */
-
- setCenter: function(p, z)
- {
- this.map.setMapCenter(new OpenLayers.LonLat(p.lon, p.lat), z);
- },
-
- /**
- * Display the map if it is not visible, or move to a new container.
- * (Not implemented in SAPO driver).
- *
- * @param n
- * @return
- */
-
- display: function(n)
- {
- return;
- },
-
- destroy: function()
- {
- // fix navigation bar
- this.clearResults();
- var resultDiv = $w('category_results');
- var titleDiv = $w('search_title_header');
- if(resultDiv.lenght > 0) { resultDiv.remove(); }
- if(titleDiv.lenght > 0) { titleDiv.remove(); }
-
- if(this.map==null) return;
- this.map.destroy();
- },
-
-
- /**
- * Add a marker to the map.
- *
- * @param object p {lat:, lon: }
- * @param object o Options object
- * @param object e Event handlers
- * {context: <context to bind to> , click: , mouseover: <etc...>}
- */
-
- addMarker: function(lonlat,o,e){
-
- if (!lonlat) {
- this.markAction = 1;
- if (this.addingAMarker) {
- return;
- }
-
- this._removeMarkers();
-
- this.map.events.register('mouseout', this, this.mouseout);
- this.map.events.register('mousemove', this, this.mousemove);
- this.map.events.register('click', this, this.markerAnchored);
-
- this.addDivImg();
- this.addingAMarker = true;
- } else if (this.markAction == 1) {
-
- if ( window.isIE) {
- var marker = new SAPO.Maps.Marker(lonlat, {draggable: true});
- } else {
- var marker = new SAPO.Maps.Marker(new OpenLayers.LonLat(lonlat.lon, lonlat.lat), o || {});
- }
-
- this.markersLayer.addMarker(marker);
- this.markers.push(marker);
-
-
- if (!window.isIE) {
- this.setCenter(lonlat,this.map.getZoom());
- }
-
- e = e || {};
- e.context = e.context || marker;
- if (e.click) { marker.registerEvent('click', e.context, e.click) };
- if (e.mouseover) { marker.registerEvent('mouseover', e.context, e.mouseover) };
- if (e.mouseout) { marker.registerEvent('mouseout', e.context, e.mouseout) };
- if (e.drag) { marker.registerEvent('drag', e.context, e.drag) };
- if (e.dragend) { marker.registerEvent('dragend', e.context, e.dragend) };
- if (e.dragstart) { marker.registerEvent('dragstart', e.context, e.dragstart) };
- }
-
- },
-
-
- cancel: function(evt){
- if((this.addingAMarker == true) || (!evt && this.addingAMarker) || (evt && evt.keyCode == 27) || (evt && evt.type === 'mouseup')){
- e = e || {};
- e.context = e.context || marker;
- if (e.click) { marker.registerEvent('click', e.context, e.click) };
- if (e.mouseover) { marker.registerEvent('mouseover', e.context, e.mouseover) };
- if (e.mouseout) { marker.registerEvent('mouseout', e.context, e.mouseout) };
- if (e.drag) { marker.registerEvent('drag', e.context, e.drag) };
- if (e.dragend) { marker.registerEvent('dragend', e.context, e.dragend) };
- if (e.dragstart) { marker.registerEvent('dragstart', e.context, e.dragstart) };
-
- this.removeDivImg();
- this.addingAMarker = false;
- }
- },
-
-
- addDivImg: function(){
- var div = document.createElement('div');
- var img = document.createElement('img');
- img.src = 'http://imgs.sapo.pt/fotos_gis/mapas_api/v1.1/Markers/new/pin.png';
- img.width = 22;
- img.height = 28;
-
- div.style.position = 'absolute';
- div.style.zIndex = '1000';
- div.appendChild(img);
- if(SAPO.Maps.Utils.checkIE6()){
- div.className += ' search_item_marker_ie6';
- img.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled='true',src='" + img.src + "')";
- }
-
- this.updateImgDivFunc = OpenLayers.Function.bindAsEventListener(this.updateDivImg, this);
- this.cancelFunc = OpenLayers.Function.bindAsEventListener(this.removeMarker, this);
-
- OpenLayers.Event.observe(document.body, 'mousemove', this.updateImgDivFunc, true);
- OpenLayers.Event.observe(document.body, 'keydown', this.cancelFunc, true);
- this.map.events.register('singlerightclick', this, this.cancelFunc.bindAsEventListener(this));
-
- this.imgDiv = div;
-
- },
-
- removeDivImg: function(){
- if (this.imgDiv == null) return;
- this.imgDiv.parentNode.removeChild(this.imgDiv);
- OpenLayers.Event.stopObserving(document.body, 'mousemove', this.updateImgDivFunc, true);
- OpenLayers.Event.stopObserving(document.body, 'keydown', this.cancelFunc, true);
- this.map.events.unregister('singlerightclick', this, this.cancelFunc.bindAsEventListener(this));
-
- this.firstUpdate = true;
- this.markerOut = true;
- this.imgDiv = null;
- this.updateImgDivFunc = null;
- this.cancelFunc = null;
- },
-
- updateDivImg: function(evt){
- if(this.lockMarker){return;}
- if(this.firstUpdate) {
- document.body.appendChild(this.imgDiv);
- this.firstUpdate = false;
- }
-
- this.imgDiv.style.top = (evt.clientY - 38) + 'px';
- this.imgDiv.style.left = (evt.clientX - 12) + 'px';
- },
-
- /**
- * Event handle called when the user moves the mouse out of the map.
- * Drag the map.
- */
-
- mouseout: function(evt){
- this.mousemove(evt);
- },
-
-
- /**
- * Event handle called when the user is moving the mouse over the map.
- * Update the marker position
- */
- mousemove: function(evt){
-
- var size = this.map.size;
- if(evt.xy.x <= this.borders.left || evt.xy.y <= (this.borders.top - 30)){
- //lock marker and pan map up
- this.panUp(evt.xy);
- }else{
- if(evt.xy.x + this.borders.right >= size.w || evt.xy.y + this.borders.bottom >= size.h){
- //lock marker and pan map down
- this.panDown(evt.xy);
- }
- else{
- //if panning stop it
- if(this.panTimer){
- window.clearInterval(this.panTimer);
- this.lockMarker = false;
- this.panTimer = null;
- }
- }
- }
-
- },
-
- panUp: function(xy){
- //first time the mouse enters on the map
- if(this.panTimer){return;}
- if(this.markerOut){
- this.markerOut = false;
- return;
- }
- this.lockMarker = true;
-
- var x = 0;
- var y = 0;
- if(xy.x <= this.borders.left && xy.y <= (this.borders.top - 30)){
- x = -1 * this.MOVE_X;
- y = -1 * this.MOVE_Y;
- }else{
- if(xy.x <= this.borders.left){
- x = -1 * this.MOVE_X;
- }else{
- y = -1 * this.MOVE_Y;
- }
- }
-
- var map = this.map;
- //set a timeout to pan the map
- this.panTimer = window.setInterval(function(){ map.pan(x, y); }.bind(this), 100);
- },
-
-
- panDown: function(xy){
- //first time the mouse enters on the map
- if(this.panTimer){return;}
- if(this.markerOut){
- this.markerOut = false;
- return;
- }
- this.lockMarker = true;
-
- var size = this.map.size;
-
- var x = 0;
- var y = 0;
- if(xy.x + this.borders.right >= size.w && xy.y + this.borders.bottom >= size.h){
- x = this.MOVE_X;
- y = this.MOVE_Y;
- }else{
- if(xy.x + this.borders.right >= size.w){
- x = this.MOVE_X;
- }else{
- y = this.MOVE_Y;
- }
- }
-
- var map = this.map;
- //set a timeout to pan the map
- this.panTimer = window.setInterval(function(){ map.pan(x, y); }.bind(this), 100);
- },
-
-
-
- /**
- * Event handle called when the marker, is handled on the map.
- */
- markerAnchored: function(evt){
-
-
- this.map.events.unregister('mouseout', this, this.mouseout);
- this.map.events.unregister('mousemove', this, this.mousemove);
- this.map.events.unregister('click', this, this.markerAnchored);
-
- this.removeDivImg();
- this.addingAMarker = false;
-
- var lonlat = this.map.getLonLatFromContainerPixel(evt.xy);
- if (this.opts.mapClick) { this.opts.mapClick({ lonlat: lonlat }); }
-
- this.markAction = 0;
- },
-
- removeMarker: function(marker){
- this.markersLayer.removeMarker(marker);
- this.markers.splice(marker.idx, 1);
- },
-
- closeOpenedPopup: function(){
- if(this.selectedMarker){
- this.selectedMarker.closePopup();
- this.selectedMarker = null;
- }
- },
-
- _removeMarkers: function(){
- this.markersLayer.removeMarkers();
- this.markers.splice(0);
- },
-
- /**
- * API Method
- * This method recevives a string with the object state, and recovers all the state.
- *
- * The state is a string in a following format:
- * lon,lat,opened,title,desc@lon,lat,opened,title,desc
- * @param {String} state
- */
- setState: function(state){
- var markers = state.split('@');
-
- var m = false;
- var mInfo = false;
- var lat = false;
- var lon = false;
- var opened = false;
- var title = false;
- var desc = false;
-
-
- for(var i = 0; i< markers.length; ++i){
- mInfo = markers[i].split(',');
- try {
- lon = Number(mInfo[0]);
- lat = Number(mInfo[1]);
- opened = Number(mInfo[2]);
- title = mInfo.length > 3? mInfo[3] : '';
- desc = mInfo.length > 4? mInfo[4] : '';
-
- m = new SAPO.Maps.Marker(new OpenLayers.LonLat(lon, lat), {draggable: true});
-
- if (window.isIE) {
- var lonlat = false;
- lonlat.lon = lon;
- lonlat.lat = lat;
- m = new SAPO.Maps.Marker(lonlat, {draggable: true});
- } else {
- m = new SAPO.Maps.Marker(new OpenLayers.LonLat(lon, lat), {draggable: true});
- }
-
- m.title = decodeURIComponent(title);
- m.description = decodeURIComponent(desc);
- m.idx = markers.length;
-
- this.markersLayer.addMarker(m);
- this.markers.push(m);
-
- }catch(e){}
- }
- },
-
- getState: function(){
- var str = '';
-
- m = false;
- var opened = false;
- var lonlat = false;
- var title = false;
- var desc = false;
- for(var i=0; i< this.markers.length; ++i){
- m = this.markers[i];
- lonlat = m.getLonLat();
- opened = m.hasOpenedPopup()? 1 : 0;
- title = encodeURIComponent(encodeURIComponent(m.title));
- desc = encodeURIComponent(encodeURIComponent(m.description));
- str += lonlat.lon + ',' + lonlat.lat + ',' + opened + ',' +
- title + ',' + desc;
-
- if(i < this.markers.length - 1){
- str += '@';
- }
- }
-
- return str;
- },
-
- getMapsURL: function() {
- var coord = this.map.getMapCenter();
- var url ='http://mapas.sapo.pt/?ll=' +coord.lat +',' +coord.lon +'&z='+this.map.getZoom();
-
- if(!this.search == null) {
- var page = this.search.getCurrentPage(this.search.openedZone);
- var selectedIndex = this.search.getSelectedIndex();
- if(page >0 ) {
- url += '&q='+encodeURI(this.lastSearch)+','+page+','+selectedIndex+','+encodeURI(this.search.openedZone)+',true';
- }
- }
- var zz = this.getState();
- if(zz) {
- url += '&mks='+zz;
- }
-
- switch(this.map.baseLayer.layername) {
- case 'map' : url += '&t=m'; break;
- case 'hybrid' : url += '&t=h'; break;
- case 'satellite' : url += '&t=s'; break;
- case 'terrain' : url += '&t=t'; break;
- }
-
- return url;
- },
-
- getImageURL: function() {
- var coord = this.map.getMapCenter();
- var ll = 'll='+coord.lat+','+coord.lon;
- var mks = this.getState();
- mks = (mks) ? mks : '';
- if(this.search.getSelectedIndex() != null) {
- var selectedSearch = this.search.getMarker(this.search.getSelectedIndex());
- if(mks != '') { mks+='@'}
- mks+= selectedSearch.getLonLat().lon+','+ selectedSearch.getLonLat().lat+ ',1,'+encodeURIComponent(selectedSearch.html.getElementsByTagName('p')[0].innerHTML)+',';
- }
-
- if(mks != '') { mks='&mks='+ mks; }
- var url = 'http://services.sapo.pt/Maps/GetMapByLinkParameters?'+ll+'&z='+(this.map.getZoom()-1) +'&width=340&height=225'+mks+'&t=' + this.map.baseLayer.layername;
- return url;
- },
-
-
- /**
- * Move a marker to new location.
- *
- * @param object m An ol vector feature object representing the marker.
- * @param object ll {lat: lon:}
- *
- * @return void
- */
-
- moveMarker: function(m, ll)
- {
- var point = new OpenLayers.LonLat(ll.lon, ll.lat);
- m.setLonLat(point);
- },
-
- /**
- * Zoom map to the best fit while containing all markers
- *
- * @param integer max Highest zoom level (@TODO)
- */
-
- zoomToFit: function(max)
- {
- this.map.zoomToExtent(this.map.vectorLayer.getDataExtent());
- },
-
- getMap: function()
- {
- return this.map;
- },
-
- getMapNodeId: function()
- {
- return this.map.div;
+ initialize: function(opts) {},
+ display: function(){
+ var ifr = document.createElement('iframe');
+ ifr.src = "/sapo/maps/sapoMapas.php";
+ ifr.height = '100%';
+ ifr.width = '100%';
+ ifr.style.border = 'none';
+ ifr.id='mapsIframe';
+ ifr.frameBorder=0;
+ ifr.scrolling='no';
+ $('kronolithEventMap').appendChild(ifr);
+
+ $('kronolithEventMap').style.width='620px';
+ $('kronolithEventMap').style.height='257px';
+ },
+ destroy: function(){
+ $('mapsIframe').contentWindow.map = null;
+ $('mapsIframe').remove();
+ },
+ getZoom: function(){
+ return $F('kronolithEventMapZoom');//stupid :D
}
-
-
+ ,//JP : This methods are ignored, mapsWidget will solve this :)
+ setCenter: function(coords){},
+ zoomToFit: function(zoom){},
+ addMarker: function(mark){}
});
-
-
-
/**
* SAPO geocoding service.
*/
initialize: function(opts)
{
this.opts = opts || {};
- this.gc = new SAPO.Maps.Geocoder();
- this.syndication = new SAPO.Communication.Syndication();
},
- /**
- * Perform a geocode operation. Textual address => latlng.
- *
- * @param string address The textual address to geocode.
- * @param function callback The callback function.
- * @param function onErrorCallback The error callback.
- *
- *
- */
geocode: function(address, callback, onErrorCallback)
{
+ queryToBeDone = address;//if maps iframe not ready, then iframe will use this text to search
+ $('kronolithEventGeo_loading_img').style.display='none';
- if (KronolithCore.map.markAction == 0 ) {
- KronolithCore.map.searchPOIs(true);
- }
-
- },
+ KronolithCore.openTab($('kronolithEventLinkMap'));
- _onGeocodeComplete: function(r)
- {
- var ll = [];
- r.each(function(i) {
- var p = { lat: i.Latitude, lon: i.Longitude };
- ll.push(p);
- });
- if (ll.length) {
- this._userGeocodeCallback(ll);
- } else {
- this._errorCallback(r);
- }
+ if(typeof($('mapsIframe').contentWindow.getResults) == 'function' && $('mapsIframe').contentWindow.navigation)
+ $('mapsIframe').contentWindow.getResults(address);
},
-
- /**
- * Perform a reverse geocode operation. latlng -> textual address.
- *
- * Hack to support reverse geocoding by using the GetRoute API. Will
- * refactor this once an actual reverse geocoder is available via SAPO.
- */
-
- reverseGeocode: function(lonlat, completeCallback, errorCallback)
- {
- },
-
- /**
- * onComplete
- */
-
- _onComplete: function(obj, args)
- {
- var place = '';
-
- if(!obj.segs){
- try {
- args.onError();
- } catch(e1) { }
- }
- try {
- $F('kronolithEventGeo');
- var r = { lon: this._ll.lon, lat: this._ll.lat, address: place };
- args.onComplete([r]);
- } catch(e2) {}
- },
-
- /**
- * onTimeout
- */
-
-
- _onTimeout: function()
- {
- if (this.onErrorCallback) {
- try {
- this.onErrorCallback();
- } catch(e1) {}
- }
- this.onCompleteCallback = this.onErrorCallback = null;
- }
-
-});
-
-
-/* auxiliary Event */
-
- function addEvent(obj, evType, fn) {
- try {
-
- if (obj.addEventListener){
- obj.addEventListener(evType, fn, false);
- return true;
- } else if (obj.attachEvent) {
- var r = obj.attachEvent("on"+evType, fn);
- return r;
- } else {
- return false;
- }
- } catch (e) {
- alert("addEvent Element error:" + obj + "\nError:\n" + e);
- }
- }
-
-
-
+ _onGeocodeComplete: function(r){ },
+ reverseGeocode: function(lonlat, completeCallback, errorCallback) {},
+ _onComplete: function(obj, args){},
+ _onTimeout: function(){}
});
-/* element.setAttribute('style', ...) workaround for IE */
- function rzCC(s){
- // thanks http://www.ruzee.com/blog/2006/07/\
- // retrieving-css-styles-via-javascript/
- for(var exp=/-([a-z])/;
- exp.test(s);
- s=s.replace(exp,RegExp.$1.toUpperCase()));
- return s;
- }
-
- function _setStyle(element, declaration) {
- if (declaration.charAt(declaration.length-1)==';')
- declaration = declaration.slice(0, -1);
- var k, v;
- var splitted = declaration.split(';');
- for (var i=0, len=splitted.length; i<len; i++) {
- k = rzCC(splitted[i].split(':')[0]);
- v = splitted[i].split(':')[1];
- eval("element.style."+k+"='"+v+"'");
-
- }
- }
-
-function addSapoMapasUI() {
- /* template in: /horde/kronolith/templates/index/edit.inc */
- if (document.getElementById('b_adicionar') == undefined) {
- var tabmap = document.getElementById('kronolithEventTabMap');
- var mark_in_map_link = document.createElement('button');
- mark_in_map_link.className = 'b_adicionar';
- mark_in_map_link.setAttribute('id', 'b_adicionar');
- mark_in_map_link.setAttribute('type', 'button');
-/*
- var gesture = '';
- if (mark_in_map_link.addEventListener){
- gesture = 'mousedown';
- } else if (mark_in_map_link.attachEvent) {
- gesture = 'onmousedown';
- }
- mark_in_map_link.setAttribute(gesture,'KronolithCore.map.addMarker();');
-*/
-
-// var isIE = (/MSIE (\d+\.\d+);/.test(navigator.userAgent));
-// mark_in_map_link.setAttribute((isIE ? 'onmousedown' : 'mousedown'),'KronolithCore.map.addMarker();');
-/*
- if (isIE) {
- mark_in_map_link.setAttribute('onmousedown','KronolithCore.map.addMarker();');
- } else {
- mark_in_map_link.setAttribute('mousedown','KronolithCore.map.addMarker();');
- }
-*/
- mark_in_map_link.innerHTML = 'Adicionar Marcador';
-
- var action_container = document.createElement('div');
- action_container.className = 'action_container';
- tabmap.appendChild(action_container);
- action_container.appendChild(mark_in_map_link);
- }
-
- if (document.getElementById('kronolithEventResults') == undefined) {
- var eventmap = document.getElementById('kronolithEventMap');
- eventmap.className = 'mapa';
- // eventmap.setAttribute('style', 'width:100%; height:270px;');
- _setStyle(eventmap, 'width:100%; height:270px'); // Sapo Mapas: Mandatory width and height !!!!!!!
-
- var resultBox = document.createElement('div');
- resultBox.setAttribute('id', 'kronolithEventResults');
- resultBox.className = 'slider';
-
- var closeSlider = document.createElement('div');
- closeSlider.className = 'sliderDoorTop';
- closeSlider.setAttribute('id', 'closeSlider');
-
- var openSlider = document.createElement('div');
- openSlider.className = 'sliderDoor';
- openSlider.setAttribute('id', 'openSlider');
-
- var _a = document.createElement('a');
- var _span = document.createElement('span');
- var slidetxt = document.createTextNode('slide');
-
- eventmap.appendChild(resultBox);
- resultBox.appendChild(closeSlider);
- resultBox.appendChild(openSlider);
- openSlider.appendChild(_a).appendChild(_span).appendChild(slidetxt);
- }
-
-// alert(document.getElementById('kronolithEventTabMap').innerHTML);
-
- var openSlider = document.createElement('div');
- openSlider.className = 'sliderDoor';
- openSlider.setAttribute('id', 'openSlider');
-
-
- // On KeyPress Search Fix
- function ie8SafePreventEvent(e){
- if (e.preventDefault){
- e.preventDefault();
- } else {
- if (e.stop) { e.stop(); }
- }
-
- eventmap.appendChild(resultBox);
- resultBox.appendChild(closeSlider);
- resultBox.appendChild(openSlider);
- openSlider.appendChild(_a).appendChild(_span).appendChild(slidetxt);
- }
-
- addEvent(document.getElementById('kronolithEventLocation'), 'keydown',
- function(event){
-
- if (event.which || event.keyCode) {
- if ((event.which == 13) || (event.keyCode == 13)) {
- ie8SafePreventEvent(event);
- KronolithCore.ensureMap();
- KronolithCore.geocode(document.getElementById('kronolithEventLocation'));
- } else if ((event.which == 27) || (event.keyCode == 27)) {
- ie8SafePreventEvent(event);
- document.getElementById('kronolithEventLocation').value = "";
- document.getElementById('kronolithEventLocation').focus();
- }
-
- } else {
- ie8SafePreventEvent(event);
- }
- }
- );
-
-
-
-
-
-
- addEvent(document.getElementById('b_adicionar'), 'mousedown',
- function(event){
- KronolithCore.map.addMarker();
- }
- );
-
-
-
-
-
-}
-
-function init(){
-
- // quit if this function has already been called
- if (arguments.callee.done) return;
- // flag this function so we don't do the same thing twice
- arguments.callee.done = true;
-
- if (document.getElementById('kronolithEventResults') == undefined) {
- addSapoMapasUI();
- }
-
-}
-
-// window.onload = init();
-
-/* for Mozilla/Opera9 */
-if (document.addEventListener) {
- document.addEventListener("DOMContentLoaded", init, false);
-}
-
-/* for Internet Explorer */
-/*@cc_on @*/
-/*@if (@_win32)
- document.write("<script id=__ie_onload defer src=javascript:void(0)><\/script>");
- var script = document.getElementById("__ie_onload");
- script.onreadystatechange = function() {
- if (this.readyState == "complete") {
- init(); // call the onload handler
- }
- };
-/*@end @*/
-
-/* for Safari */
-if (/WebKit/i.test(navigator.userAgent)) { // sniff
- var _timer = setInterval(function() {
- if (/loaded|complete/.test(document.readyState)) {
- init(); // call the onload handler
- }
- }, 10);
-}
-
-/* for other browsers */
-window.onload = init;