home *** CD-ROM | disk | FTP | other *** search
Wrap
// *****************global/common variables******************** var gBundle = Components.classes["@mozilla.org/intl/stringbundle;1"].getService(Components.interfaces.nsIStringBundleService); var minimapperstrings = gBundle.createBundle("chrome://minimap/locale/maps.properties"); const gPrefs = Components.classes["@mozilla.org/preferences-service;1"] .getService(Components.interfaces.nsIPrefService) .QueryInterface(Components.interfaces.nsIPrefBranch); const gmaps_Branch = gPrefs.getBranch("gmaps."); const nsIRDFRemoteDataSource = Components.interfaces.nsIRDFRemoteDataSource; var $ = function(x) { return document.getElementById(x); }; mainWindow = window.QueryInterface(Components.interfaces.nsIInterfaceRequestor) .getInterface(Components.interfaces.nsIWebNavigation) .QueryInterface(Components.interfaces.nsIDocShellTreeItem) .rootTreeItem .QueryInterface(Components.interfaces.nsIInterfaceRequestor) .getInterface(Components.interfaces.nsIDOMWindow); var gMapsDS = null; var gAddress = null; var gAddressB = null; var gTitle = null; var gUrl = null; var gDescription = null; var gGeocodeType = null; var gObserver = { onAssert : function(ds, source, predicate, target){ //rebuildDs(); }, onUnassert : function(ds, source, predicate, target){ //rebuildDs(); }, onChange : function(ds, source, predicate, oldTarget, newTarget){ //rebuildDs(); }, onMove : function(ds, oldSource, newSource, predicate, target){}, onBeginUpdateBatch : function(ds){}, onEndUpdateBatch : function(ds){} }; var addressObserver={ onDragStart: function(event, transferData, action){ try{ var tree = $('address_list'); var selectedItems = flock_getTreeSelection(tree, ["idCol"]); if(!selectedItems) return false; if(selectedItems.length == 0) return false; var src = ""; var txt = ""; if (selectedItems.length == 1) { src = createLink(selectedItems[0]["idCol"]); } else { for (var i = 0; i < selectedItems.length; ++i) { var item = selectedItems[i]; src = src + "<p>"+createLink(item["idCol"])+"</p>"; } } transferData.data=new TransferData(); transferData.data.addDataForFlavour("text/html", src); transferData.data.addDataForFlavour("text/unicode", src); } catch(e){ } }, onClick: function( event ) { alert(event); } }; // ################ end of global/common variables #################### //***************** init / close code ***************************************** function initMaps() { document.getElementById("mapsContext").addEventListener("popupshowing", mapsPopupShowing, false); var addlistheight = gPrefs.getIntPref("extensions.gmaps.addresslistheight"); $('maps-deck').setAttribute('height',addlistheight); var ds = flock_mapsGetDS(); var ui = document.getElementById('address_list'); ui.database.AddDataSource(ds.getRawDataSource()); ui.ref = "urn:flock:maps:addresses"; ui.builder.rebuild(); rebuildMap(); var datasource = ds.getRawDataSource().QueryInterface (nsIRDFRemoteDataSource); datasource.AddObserver(gObserver); directionsSetPathway(); //addGeoXmlLayers(); } // huge hack, really bad testForLoad(); function testForLoad(){ try{ var loadfunc = minimapBrowserScope().webTestForLoad(); if (loadfunc == 'true'){ addGeoXmlLayers(); } else{ setTimeout('testForLoad()',100); } } catch(err){ setTimeout('testForLoad()',100); } } function mapHome() { var type = gPrefs.getCharPref("extensions.gmaps.start.maptype"); extMapType(type); var homeLat = gPrefs.getCharPref("extensions.gmaps.mapHomeLat"); var homeLon = gPrefs.getCharPref("extensions.gmaps.mapHomeLon"); minimapBrowserScope().webSetHome(homeLat, homeLon); } function closeMaps() { var ds = flock_mapsGetDS(); var datasource = ds.getRawDataSource().QueryInterface (nsIRDFRemoteDataSource); datasource.Flush(); datasource.RemoveObserver(gObserver); } // ##################### end of init / close code ############################# //********************** datasource code ****************************** function flock_mapsGetDS() { var RDFService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService().QueryInterface(Components.interfaces.nsIRDFService); var dirService = Components.classes['@mozilla.org/file/directory_service;1'].getService(Components.interfaces.nsIProperties); var profileDir = dirService.get('ProfD', Components.interfaces.nsILocalFile); if(!gMapsDS) { // Create file object in the user's profile path. var file = Components.classes['@mozilla.org/file/local;1'].createInstance(Components.interfaces.nsILocalFile); file.initWithPath(profileDir.path); file.append('flock_maps.rdf'); if(!file.exists()) file.createUnique(0,0700); // Create the datasource and a sequence gMapsDS = new RDFDataSource('file://'+file.path); var root = gMapsDS.getNode("urn:flock:maps:addresses"); root.makeSeq(); var rootkml = gMapsDS.getNode("urn:flock:maps:kml"); rootkml.makeSeq(); } return gMapsDS; } function rebuildDs() { var ds = flock_mapsGetDS(); var ui = document.getElementById('address_list'); ui.database.AddDataSource(ds.getRawDataSource()); ui.ref = "urn:flock:maps:addresses"; ui.builder.rebuild(); } function _mns(str) { return "http://www.flock.com/rdf/maps#" + str; } function addressCount(){ var ds = flock_mapsGetDS(); var root = ds.getNode("urn:flock:maps:addresses"); // Just using getChildCount() doesn't work for some reason. Too bad for now. var cnt=0; var children = root.getChildren(); while(children.hasMoreElements()){ children.getNext(); cnt++; } return cnt; } function rebuildMap( ) { var ds = flock_mapsGetDS(); var container = ds.getNode("urn:flock:maps:addresses"); var allAddresses = []; var localeService = Components.classes["@mozilla.org/intl/nslocaleservice;1"].getService(Components.interfaces.nsILocaleService); var stringBundleService = Components.classes["@mozilla.org/intl/stringbundle;1"].getService(Components.interfaces.nsIStringBundleService); var stringBundle = stringBundleService.createBundle("chrome://minimap/content/locale/maps.properties", localeService.getApplicationLocale()); var nodes = container.getChildren(); while ( nodes.hasMoreElements() ) { var node = nodes.getNext(); var index = ""; var url = ""; var address = ""; var title = ""; var desc = ""; var lat = ""; var lng = ""; if (node.getTarget(_mns('indexlabel'))) index = node.getTarget(_mns('indexlabel')).getValue(); if (node.getTarget(_mns('location'))) address = node.getTarget(_mns('location')).getValue(); if (node.getTarget(_mns('title'))) title = node.getTarget(_mns('title')).getValue(); if (node.getTarget(_mns('sourceurl'))) url = node.getTarget(_mns('sourceurl')).getValue(); if (node.getTarget(_mns('description'))) desc = node.getTarget(_mns('description')).getValue(); if (node.getTarget(_mns('lat'))) lat = parseFloat(node.getTarget(_mns('lat')).getValue()); if (node.getTarget(_mns('lng'))) lng = parseFloat(node.getTarget(_mns('lng')).getValue()); if (url) { var body = "<a target=\"_blank\" style=\"font-weight:bold; text-decoration: underline; color: blue;\" href=\""+url+"\">"+title+"</a>"; } else { var body = "<b>"+title+"</b>"; } body += "<br/><i>"+address+"</i><br/>"+ "<p>"+desc+"<br/>"+ "<div style=\"text-align: right; font-size: 10px; color: blue; text-decoration: underline; padding: 0; margin: 2px 0 0 0;\"><a target='_blank' href='http://maps.google.com/maps?addr=&daddr="+encodeURI(address)+"'>Directions to/from Google</a></div></p>"; allAddresses.push( {title: index, body: body, lat:lat, lng:lng} ) } if(allAddresses.length == 0){ $('maps-deck').setAttribute('selectedIndex','0'); } else { $('maps-deck').setAttribute('selectedIndex','1'); } minimapBrowserScope().updateNodes( allAddresses ); } function maps_keypress( event ) { if ((event.keyCode == 8)||(event.keyCode == 46)) { delete_address(); } } function show() { try{ var tree = $('address_list'); var treeSelection = flock_getTreeSelection(tree, ["idCol"]); var item = treeSelection[0]; var rdfId = item["idCol"]; var ds = flock_mapsGetDS(); var node = ds.getNode( rdfId ); var lat = parseFloat(node.getTarget(_mns('lat')).getValue()); var lng = parseFloat(node.getTarget(_mns('lng')).getValue()); minimapBrowserScope().gotoLatLng( lat, lng ); } catch(err){} } function showSel(id){ aTree = $('address_list'); aCols = 'idCol'; var z = addressCount(); for (var i = 0; i < z; ++i) { var col = aTree.columns.getNamedColumn(aCols); var t = aTree.view.getCellText(i, col); if(id == t){ //var boxobject = aTree.boxObject; //boxobject.QueryInterface(Components.interfaces.nsITreeBoxObject); //boxobject.scrollToRow(i); aTree.view.selection.select(i); } } } function delete_address() { var ds = flock_mapsGetDS(); var container = ds.getNode("urn:flock:maps:addresses"); var tree = $('address_list'); var treeSelection = flock_getTreeSelection(tree, ["idCol"]); for (var i = 0; i < treeSelection.length; ++i) { var item = treeSelection[i]; var objectId = item["idCol"]; var node = ds.getNode(objectId); ds.deleteRecursive(node); container.removeChild(node); } ds.save(); rebuildMap( ) } function edit_address(){ var tree = $('address_list'); var treeSelection = flock_getTreeSelection(tree, ["idCol"]); var item = treeSelection[0]; var objectId = item["idCol"]; window.openDialog("chrome://minimap/content/editAddressDlg.xul", "editAddress", "modal, centerscreen", objectId); rebuildMap( ) } function createLink(rdfId){ var ds = flock_mapsGetDS(); var node = ds.getNode( rdfId ); var result = node.getTarget(_mns('sourceurl')).getValue(); return result; } function add_object(data){ try{ var ds = flock_mapsGetDS(); var container = ds.getNode("urn:flock:maps:addresses"); var date=new Date(); var id='obj_' + date.getTime(); var root = ds.getNode("urn:flock:maps:addresses"); var node = ds.getNode("urn:flock:maps:addresses:" + id); node.addTargetOnce(_mns('id'), "urn:flock:maps:addresses:" + id ); node.addTargetOnce(_mns('sourceurl'), data.sourceurl + "" ); node.addTargetOnce(_mns('location'), data.address + ""); node.addTargetOnce(_mns('indexlabel'), data.indexlabel +""); node.addTargetOnce(_mns('lat'), data.lat + "" ); node.addTargetOnce(_mns('lng'), data.lng + "" ); node.addTargetOnce(_mns('title'), data.title + "" ); node.addTargetOnce(_mns('description'), (data.description || "") ); node.addTargetOnce(_mns('accuracy'), data.accuracy + "" ); node.addTargetOnce(_mns('country'), (data.country || "") ); node.addTargetOnce(_mns('state'), (data.state || "") ); node.addTargetOnce(_mns('county'), (data.county || "") ); node.addTargetOnce(_mns('locality'), (data.locality || "") ); node.addTargetOnce(_mns('postal'), (data.postal || "") ); node.addTargetOnce(_mns('street'), (data.street || "") ); node.addTargetOnce(_mns('altd'), (data.altd || "") ); root.addChild(node); ds.save(); rebuildMap( ) show('urn:flock:maps:addresses:'+id); showSel('urn:flock:maps:addresses:'+id); } catch(e){ } } // ####################### end of main datasource code ######### // ********************* drag and drop code ******************* var mapsObserver={ onDragOver: function(event,flavor,session){ }, onDrop: function(evt,dropData,asession){ var data = flock_getMarkedUpSelection(evt, dropData, asession); var title = content.document.title; gTitle = title; try{ gUrl = content.document.location; if (gUrl == "about:blank") gUrl = ""; } catch(err){ gUrl = ""; } gDescription = ""; // switch(data.type){ // doesn't seem to work // case "link": add_link(data);break; // doesn't seem to work // case "document": // doesn't seem to work var datalabel = data.label.toString(); datalabel = datalabel.replace( /[\r\n>]/g, ' ' ); //datalabel = datalabel.replace('google map',''); //datalabel = datalabel.replace('yahoo map',''); //if (datalabel.match('.kml')){ //var kml = datalabel.split('.kml')[0]; //kml = kml + ".kml"; //extAddXml(kml); // } if (datalabel.match('.kmz') || datalabel.match('.kml') || datalabel.match('=kml') || datalabel.match('bbs.keyhole.com') || datalabel.match('http://maps.google.com/maps/ms') || datalabel.match('.rss') || datalabel.match('.georss') || datalabel.match('=georss') || datalabel.match('=rss')){ var datalabel = datalabel.split(' ')[0]; extAddXml(datalabel); } else if (datalabel.match('maps.google') || datalabel.match('maps.yahoo') || datalabel.match('maps.live') ){ datalabel = datalabel.split(' ')[0]; addressParse(datalabel); gGeocodeType = 'add'; geocode(); } else if (datalabel.match('googlesightseeing.com')) { address = datalabel.replace( /[\r\n>]/g, ' ' ); encodedAddress = encodeURI(address); gAddress = encodedAddress; if (gPrefs.getBoolPref("extensions.gmaps.gsspref")== true) { gsAddress = encodedAddress.split('&ll=')[1]; gsAddressB = gsAddress.split('&')[0]; var data = {}; data.lat = gsAddressB.split(',')[0]; data.lng = gsAddressB.split(',')[1]; minimapBrowserScope().gotoLatLngGss( data.lat, data.lng ); } else { gsAddress = encodedAddress.split('&ll=')[1]; gsAddressB = gsAddress.split('&')[0]; gsTitle = encodedAddress.split('%0A')[1]; gsTitleB = gsTitle.replace(/%20/g, ' '); var data = {}; data.lat = gsAddressB.split(',')[0]; data.lng = gsAddressB.split(',')[1]; data.address = gsAddressB; data.title = "GSS: " + gsTitleB; data.sourceurl = gAddress; data.indexlabel = addressCount()+1; data.indexlabel = data.indexlabel.toString(); data.accuracy = "8"; add_object(data); minimapBrowserScope().gotoLatLngGss( data.lat, data.lng ); } } else{ if (evt.shiftKey){ gAddressB = datalabel; addressParse(datalabel); gGeocodeType = 'drop'; geocode(); } if (evt.ctrlKey){ var append = gPrefs.getCharPref("extensions.gmaps.append.address"); gAddressB = datalabel + " " + append; addressParse(datalabel + " " + append); gGeocodeType = 'add'; geocode(); } else { gAddressB = datalabel; addressParse(datalabel); gGeocodeType = 'add'; geocode(); } } // break; // } }, onDragStart: function(event, transferData, action){ dump('Drag started!'); transferData.data=new TransferData(); transferData.data.addDataForFlavour("text/html",'html'); transferData.data.addDataForFlavour("text/x-moz-url",'url'); transferData.data.addDataForFlavour("text/unicode",'unicode'); transferData.data.addDataForFlavour("application/x-moz-file",'file'); }, getSupportedFlavours: function(){ flavors=new FlavourSet(); flavors.appendFlavour('text/unicode'); flavors.appendFlavour('text/html'); flavors.appendFlavour('text/x-moz-url'); flavors.appendFlavour('application/x-moz-file','nsIFile'); return flavors; } } function addressParse(address) { address = address.replace( /[\r\n>]/g, ' ' ); encodedAddress = encodeURI(address); gAddress = encodedAddress; if (encodedAddress.match('maps.live')) { var query = encodedAddress; var pairs = query.split("&"); for (var i=0; i<pairs.length; i++) { var pos = pairs[i].indexOf("="); var argname = pairs[i].substring(0,pos).toLowerCase(); var value = pairs[i].substring(pos+1); if (argname == "where1") {var loc = value;} if (argname == "cp") {var loc = value;} } loc = loc.replace(/~/gi,','); encodedAddress = loc; gAddress = encodedAddress; gAddressB = encodedAddress; } if (encodedAddress.match('maps.yahoo')) { if (encodedAddress.match('lat=')) { var query = encodedAddress; var pairs = query.split("&"); for (var i=0; i<pairs.length; i++) { var pos = pairs[i].indexOf("="); var argname = pairs[i].substring(0,pos).toLowerCase(); var value = pairs[i].substring(pos+1); if (argname == "lat") {var lat = value;} if (argname == "lon") {var lon = value;} } encodedAddress = lat + ',' + lon; gAddress = encodedAddress; gAddressB = encodedAddress; } else{ encodedAddress = encodedAddress.split('?addr=')[1]; encodedAddress = encodedAddress.split('%0A')[0]; encodedAddress = encodedAddress.replace( /\+at\+.*&csz=/gi, ', '); encodedAddress = encodedAddress.replace( /&csz=/gi, ', '); encodedAddress = encodedAddress.replace( /&country=/gi, ', '); encodedAddress = encodedAddress.replace( /\+/g, ' '); gAddress = encodedAddress; gAddressB = encodedAddress; } } if (encodedAddress.match('maps.google')) { encodedAddress = encodedAddress.replace(/loc%3A/,'') // sometimes there is a 'loc:' in the query encodedAddress = encodedAddress.replace(/loc%/,'') // sometimes there is a 'loc:' in the query encodedAddress = encodedAddress.replace(/253A/,'') // sometimes there is a '253A:' in the query if (encodedAddress.match('q=')){ encodedAddress = encodedAddress.split('?q=')[1]; } if (encodedAddress.match('addr=')){ encodedAddress = encodedAddress.split('?addr=')[1]; } if (encodedAddress.match('%0A')){ encodedAddress = encodedAddress.split('%0A')[0]; } if (encodedAddress.match('%2540')){ encodedAddress = encodedAddress.split('%2540')[0]; } if (encodedAddress.match(/\(/)){ encodedAddressb = encodedAddress.split('(')[0]; encodedAddressc = encodedAddress.split(')')[1]; encodedAddress = encodedAddressb+encodedAddressc; } if (encodedAddress.match('ll=')){ encodedAddress = encodedAddress.split('?ll=')[1]; } if (encodedAddress.match('spn=')){ encodedAddress = encodedAddress.split('spn=')[0]; } encodedAddress = encodedAddress.replace( /\+/g, ' '); gAddress = encodedAddress; gAddressB = encodedAddress; } } // ################ end of drag and drop code ################# // ********************* edit address dialog code **************************** function fillFields() { if (window.arguments) { addressId = window.arguments; var ds = flock_mapsGetDS(); var node = ds.getNode( addressId ); $('address-address').value = node.getTarget(_mns('location')).getValue(); $('address-title').value = node.getTarget(_mns('title')).getValue(); $('address-url').value = node.getTarget(_mns('sourceurl')).getValue(); $('address-description').value = node.getTarget(_mns('description')).getValue(); $('address-accuracy').value = node.getTarget(_mns('accuracy')).getValue(); var lat = node.getTarget(_mns('lat')).getValue(); var lng = node.getTarget(_mns('lng')).getValue(); $('drag-maps-minibrowser').contentWindow.webSetHome(lat, lng); } } function saveAddress() { addressId = window.arguments; var m = $('drag-maps-minibrowser').contentWindow.webGetLatLng(); var lat = parseFloat(m.lat); var lng = parseFloat(m.lng); var ds = flock_mapsGetDS(); var root = ds.getNode("urn:flock:maps:addresses"); var node = ds.getNode( addressId ); node.addTargetOnce(_mns('location'), $('address-address').value); node.addTargetOnce(_mns('title'), $('address-title').value); node.addTargetOnce(_mns('sourceurl'), $('address-url').value); node.addTargetOnce(_mns('description'), $('address-description').value); node.addTargetOnce(_mns('accuracy'), $('address-accuracy').value); node.addTargetOnce(_mns('lat'), lat + "" ); node.addTargetOnce(_mns('lng'), lng + "" ); if (root.getChildIndex(node) == -1){ root.addChild(node); } ds.save(); } // ###################### end of edit address dialog code ######## // ******************* geocode code ********************** // --------- google geocoder--------------------- function geocode() { $('maps-deck').selectedIndex = "2"; var address = gAddress; var domain = gPrefs.getCharPref("extensions.gmaps.domain"); req = new XMLHttpRequest (); req.onreadystatechange = getMapsResponse; req.open("GET","http://"+domain+"/maps/geo?q="+address+"&output=json&key=ABQIAAAAYgWXR5db6m93gnVrMsuXtxQncSHX4Q3-Ab3FozCaoQoCHwys1RTHg7pQTMlWwiL_zaU6tQ386P4zMw",true); req.send(null); } function getMapsResponse(){ if (req.readyState == 4) { if (req.status == 200) { $('maps-deck').selectedIndex = "1"; var results = JSON.parse(req.responseText); var code = results.Status.code; if (code == "200"){ if (results.Placemark.length == 1){ var placemark = results.Placemark[0]; var lat = placemark.Point.coordinates[1]; var lng = placemark.Point.coordinates[0]; var atld = placemark.Point.coordinates[2]; var structAdd = placemark.address; var accuracy = placemark.AddressDetails.Accuracy; try{var country = placemark.AddressDetails.Country.CountryNameCode;}catch(e){var country = '';}; try{var state = placemark.AddressDetails.Country.AdministrativeArea.AdministrativeAreaName;}catch(e){var state = '';}; try{var county = placemark.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.SubAdministrativeAreaName;}catch(e){var county = '';}; try{var locality = placemark.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.LocalityName;}catch(e){var locality = '';}; try{var postal = placemark.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.PostalCode.PostalCodeNumber;}catch(e){var postal = '';} try{var street = placemark.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.Thoroughfare.ThoroughfareName;}catch(e){var street = '';}; if (gGeocodeType == 'pan'){ minimapBrowserScope().gotoLatLng(lat,lng); } if (gGeocodeType == 'drop'){ var body = gTitle+"<br /><i>"+structAdd+"</i>"; minimapBrowserScope().addItGeoDis(lat,lng,gTitle,body); } if (gGeocodeType == 'add'){ var data = {}; data.lat = lat; data.lng = lng; data.accuracy = accuracy; data.address = gAddressB; data.title = gTitle; data.sourceurl = gUrl; data.description = gDescription; data.country = country; data.state = state; data.county = county; data.locality = locality; data.postal = postal; data.street = street; data.altd = altd; data.indexlabel = addressCount()+1; data.indexlabel = data.indexlabel.toString(); add_object(data); minimapBrowserScope().gotoLatLng(lat,lng); } } // end one result if else{ $('maps-deck').selectedIndex = "1"; var geoList = $('multiaddress-list'); geoList.setAttribute('hidden',false); var mapDeck = $('maps-deck'); mapDeck.setAttribute('hidden',true); for (var i = 0; i <= results.Placemark.length - 1; i++){ var placemark = results.Placemark[i]; var lat = placemark.Point.coordinates[1]; var lng = placemark.Point.coordinates[0]; var altd = placemark.Point.coordinates[2]; var structAdd = placemark.address; var accuracy = placemark.AddressDetails.Accuracy; try{var country = placemark.AddressDetails.Country.CountryNameCode;}catch(e){var country = '';}; try{var state = placemark.AddressDetails.Country.AdministrativeArea.AdministrativeAreaName;}catch(e){var state = '';}; try{var county = placemark.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.SubAdministrativeAreaName;}catch(e){var county = '';}; try{var locality = placemark.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.LocalityName;}catch(e){var locality = '';}; try{var postal = placemark.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.PostalCode.PostalCodeNumber;}catch(e){var postal = '';}; try{var street = placemark.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.Thoroughfare.ThoroughfareName;}catch(e){var street = '';}; var coords = lat + ',' + lng; var listitem = document.createElement('listitem'); listitem.setAttribute('label',structAdd); listitem.setAttribute('value',coords); listitem.setAttribute('title',structAdd); listitem.setAttribute('accuracy',accuracy); listitem.setAttribute('description',gDescription); listitem.setAttribute('url',gUrl); listitem.setAttribute('country',country); listitem.setAttribute('state',state); listitem.setAttribute('county',county); listitem.setAttribute('locality',locality); listitem.setAttribute('postal',postal); listitem.setAttribute('street',street); listitem.setAttribute('altd',altd); geoList.appendChild(listitem); } // for } // end more than one else } // end code 200 if (code != "200"){ pipesGeocode(); } } } } // -------------- pipes json geocoder -------------------- function pipesGeocode(){ var address = gAddress; req = new XMLHttpRequest (); req.onreadystatechange = getaddressPipesResponse; req.open("GET","http://pipes.yahoo.com/pipes/pipe.run?_id=qudHFl3z2xGTWsmGnkartA&_render=json&_run=1&location="+address,true); req.send(null); } function getaddressPipesResponse(){ if (req.readyState == 4) { if (req.status == 200) { $('maps-deck').selectedIndex = "1"; var results = JSON.parse(req.responseText); var resultset = results.value.items[0]; var lat = resultset.lat; //eg returns "56.575849" var lng = resultset.lon; //eg returns "-3.231635" var accuracy = resultset.quality; //eg returns "40" try{var country = resultset.country;}catch(e){var country = '';} try{var state = resultset.state;}catch(e){var state = '';} try{var locality = resultset.city;}catch(e){var locality = '';} try{var postal = resultset.postal;}catch(e){var postal = '';} try{var street = resultset.street;}catch(e){var street = '';} if (!postal) postal = ''; if (gGeocodeType == 'pan'){ if (lat != '') minimapBrowserScope().gotoLatLng(lat,lng); } if (gGeocodeType == 'drop'){ if (lat != ''){ var body = gTitle+"<br /><i>"+gAddressB+"</i>"; minimapBrowserScope().addItGeoDis(lat,lng,gTitle,body); } } if (gGeocodeType == 'add'){ if (lat != ''){ var data = {}; data.lat = lat; data.lng = lng; data.accuracy = accuracy; data.address = gAddressB; data.title = gTitle; data.sourceurl = gUrl; data.description = gDescription; data.country = country; data.state = state; data.locality = locality; data.postal = postal; data.street = street; data.indexlabel = addressCount()+1; data.indexlabel = data.indexlabel.toString(); add_object(data); minimapBrowserScope().gotoLatLng(lat,lng); } } } else{ $('maps-deck').selectedIndex = "1"; } } } // ################### end of geocode code ##################### // ********************** tools code ************************** // ------------ address list context code --------------------- function setMapHome() { var ds = flock_mapsGetDS(); var container = ds.getNode("urn:flock:maps:addresses"); var tree = $('address_list'); var treeSelection = flock_getTreeSelection(tree, ["idCol"]); for (var i = 0; i < treeSelection.length; ++i) { var item = treeSelection[i]; var objectId = item["idCol"]; var node = ds.getNode(objectId); var lat = node.getTarget(_mns('lat')).getValue(); var lng = node.getTarget(_mns('lng')).getValue(); gPrefs.setCharPref("extensions.gmaps.mapHomeLat", lat); gPrefs.setCharPref("extensions.gmaps.mapHomeLon", lng); } } function setStartAddress() { var ds = flock_mapsGetDS(); var container = ds.getNode("urn:flock:maps:addresses"); var tree = $('address_list'); var treeSelection = flock_getTreeSelection(tree, ["idCol"]); for (var i = 0; i < treeSelection.length; ++i) { var item = treeSelection[i]; var objectId = item["idCol"]; var node = ds.getNode(objectId); var loc = node.getTarget(_mns('location')).getValue(); var lat = node.getTarget(_mns('lat')).getValue(); var lng = node.getTarget(_mns('lng')).getValue(); gPrefs.setCharPref("extensions.gmaps.startprefnew", loc); gPrefs.setCharPref("extensions.gmaps.startpreflat", lat); gPrefs.setCharPref("extensions.gmaps.startpreflng", lng); } } function openAddressService(service){ var startaddress = gPrefs.getCharPref("extensions.gmaps.startprefnew"); var domain = gPrefs.getCharPref("extensions.gmaps.domain"); var ydomain = gPrefs.getCharPref("extensions.gmaps.ydomain"); var ds = flock_mapsGetDS(); var container = ds.getNode("urn:flock:maps:addresses"); var tree = $('address_list'); var treeSelection = flock_getTreeSelection(tree, ["idCol"]); for (var i = 0; i < treeSelection.length; ++i) { var item = treeSelection[i]; var objectId = item["idCol"]; var node = ds.getNode(objectId); var nodelat = node.getTarget(_mns('lat')).getValue(); var nodelng = node.getTarget(_mns('lng')).getValue(); var nodeurl = node.getTarget(_mns('sourceurl')).getValue(); var nodetitle = node.getTarget(_mns('title')).getValue(); var nodeaddress = node.getTarget(_mns('location')).getValue(); var nodedescription = node.getTarget(_mns('description')).getValue(); var url = switchService(service,domain,ydomain,startaddress,nodelat,nodelng,nodeurl,nodetitle,nodeaddress,nodedescription); var newTab = mainWindow.getBrowser().addTab(url); mainWindow.getBrowser().selectedTab = newTab; } } function aboutAccuracy() { window.openDialog("chrome://minimap/content/aboutaccuracy.xul", "aboutaccuracy", "modal, centerscreen"); } function myOptions() { window.open("chrome://minimap/content/mapsprefs.xul", "preferences", "chrome, centerscreen"); } // ------------ toolbarbutton code --------------------- function extPanAdd() { var promptMsg = minimapperstrings.GetStringFromName("address.prompt.prompt"); var addMsg = minimapperstrings.GetStringFromName("address.prompt.address"); var gadd = prompt(promptMsg,addMsg); if (gadd){ gAddress = encodeURIComponent(gadd); gGeocodeType = 'pan'; geocode(); } } function add_from_input(){ var params = { title: "", address: "", url: "", description: "", cancelled: false }; window.openDialog("chrome://minimap/content/addAddressDlg.xul", "_blank", "modal,centerscreen", params); if (!params.cancelled){ gAddress = encodeURIComponent(params.address); gAddressB = params.address; gTitle = params.title; gUrl = params.url; gDescription = params.description; gGeocodeType = 'add'; geocode(); } } function extAddCrosshair() { var center = minimapBrowserScope().webGetCenter(); var glat = center.lat; var glon = center.lng; var params = { title: "Coordinate", address: center.lat +","+center.lng, url: "http://maps.google.com/maps?q="+center.lat +","+center.lng, description: "", cancelled: false }; window.openDialog("chrome://minimap/content/addAddressDlg.xul", "_blank", "modal,centerscreen", params); if (!params.cancelled){ var data = {}; data.lat = glat; data.lng = glon; data.address = params.address; data.title = params.title; data.sourceurl = params.url; data.description = params.description; data.indexlabel = addressCount()+1; data.indexlabel = data.indexlabel.toString(); data.accuracy = "8"; add_object(data); } } function extMapHome() { var homeLat = gPrefs.getCharPref("extensions.gmaps.mapHomeLat"); var homeLon = gPrefs.getCharPref("extensions.gmaps.mapHomeLon"); minimapBrowserScope().gotoLatLng(homeLat,homeLon); } function extZoomIn() { minimapBrowserScope().webZoomIn(); } function extZoomOut() { minimapBrowserScope().webZoomOut(); } function extZoomInPlus() { minimapBrowserScope().webZoomInPlus(); } function extZoomOutPlus() { minimapBrowserScope().webZoomOutPlus(); } function extMapType(type) { if(type == "Map") minimapBrowserScope().webMapMapType(); if(type == "Satellite") minimapBrowserScope().webSatMapType(); if(type == "Hybrid") minimapBrowserScope().webHybMapType(); if(type == "Terrain") minimapBrowserScope().webTerMapType(); if(type == "Earth") minimapBrowserScope().webEarMapType(); gPrefs.setCharPref("extensions.gmaps.start.maptype", type); } function extTrafficToggle(){ minimapBrowserScope().webTrafficToggle(); } function extDragZoom(){ minimapBrowserScope().webDragZoom(); } function extUndo(){ minimapBrowserScope().webUndo(); } // ################## end of tools code ###################### // ***************** directions mode ************************** function directionsSetPathway() { var defaultMsg = minimapperstrings.GetStringFromName("directions.list.default"); var dirService = Components.classes['@mozilla.org/file/directory_service;1'].getService(Components.interfaces.nsIProperties); var profileDir = dirService.get('ProfD', Components.interfaces.nsILocalFile); pathway = "file://"+profileDir.path+"/flock_maps.rdf"; pathway = pathway.replace(/ /g,'%20'); var startaddress = gPrefs.getCharPref("extensions.gmaps.startprefnew"); $('directions-from-list').setAttribute('datasources',pathway); $('directions-from-list').setAttribute('ref','urn:flock:maps:addresses'); $('directions-to-list').setAttribute('datasources',pathway); $('directions-to-list').setAttribute('ref','urn:flock:maps:addresses'); $('directions-from-list-default').setAttribute('value',startaddress); $('directions-from-list-default').setAttribute('label',defaultMsg+startaddress); $('directions-to-list-default').setAttribute('value',startaddress); $('directions-to-list-default').setAttribute('label',defaultMsg+startaddress); } function directionsDo(action){ var directionsFrom = $('directions-from-textbox').value; var directionsTo = $('directions-to-textbox').value; var domain = gPrefs.getCharPref("extensions.gmaps.domain"); var ydomain = gPrefs.getCharPref("extensions.gmaps.ydomain"); var email = "http://"+domain+"/maps?saddr="+encodeURIComponent(directionsFrom)+"&daddr="+encodeURIComponent(directionsTo); if (action == 'preview'){ minimapBrowserScope().webGetDirections(directionsFrom,directionsTo); } else if (action == 'share'){ var linkMsg = minimapperstrings.GetStringFromName("firefox.maps.link"); prompt(linkMsg,"http://"+domain+"/maps?saddr="+directionsFrom+"&daddr="+directionsTo); } else if (action == 'email'){ location.href = "mailto:?body="+encodeURIComponent(email); } else { var url = action; switch (url) { case "google": url = "http://"+domain+"/maps?saddr="+directionsFrom+"&daddr="+directionsTo; break; case "yahoo": url = "http://"+ydomain+"/dd?taddr="+directionsTo+"&addr="+directionsFrom; break; case "microsoft": url = "http://local.live.com/default.aspx?rtp=adr."+directionsFrom+"~adr."+directionsTo; break; } var newTab = mainWindow.getBrowser().addTab(url); mainWindow.getBrowser().selectedTab = newTab; } } function directionsMove(rdfId){ var ds = flock_mapsGetDS(); var node = ds.getNode( rdfId ); var lat = parseFloat(node.getTarget(_mns('lat')).getValue()); var lng = parseFloat(node.getTarget(_mns('lng')).getValue()); minimapBrowserScope().gotoLatLng( lat, lng ); } function previewAddressService(fromto,list){ if (list == 'address'){ var ds = flock_mapsGetDS(); var container = ds.getNode("urn:flock:maps:addresses"); var tree = $('address_list'); var treeSelection = flock_getTreeSelection(tree, ["idCol"]); for (var i = 0; i < treeSelection.length; ++i) { var item = treeSelection[i]; var objectId = item["idCol"]; var node = ds.getNode(objectId); var nodelat = node.getTarget(_mns('lat')).getValue(); var nodelng = node.getTarget(_mns('lng')).getValue(); var coordsTo = nodelat + ',' +nodelng; } } var lat = gPrefs.getCharPref("extensions.gmaps.startpreflat"); var lng = gPrefs.getCharPref("extensions.gmaps.startpreflng"); var coordsDefault = lat + ',' +lng; if (fromto == 'preview-to') minimapBrowserScope().webGetDirections(coordsTo,coordsDefault); if (fromto == 'preview-from') minimapBrowserScope().webGetDirections(coordsDefault,coordsTo); } // ################## end of directions mode ###################### // ***************** dynamic about this location menu code ************************** function mapsPopupShowing(){ var amazonmenu = $('amazon'); while (amazonmenu.firstChild) amazonmenu.removeChild(amazonmenu.firstChild); var ebaymenu = $('ebay'); while (ebaymenu.firstChild) ebaymenu.removeChild(ebaymenu.firstChild); var mapscommenu = $('mapscom'); while (mapscommenu.firstChild) mapscommenu.removeChild(mapscommenu.firstChild); var upcomingmenu = $('upcoming'); while (upcomingmenu.firstChild) upcomingmenu.removeChild(upcomingmenu.firstChild); var ds = flock_mapsGetDS(); var container = ds.getNode("urn:flock:maps:addresses"); var tree = $('address_list'); var treeSelection = flock_getTreeSelection(tree, ["idCol"]); for (var i = 0; i < treeSelection.length; ++i) { var item = treeSelection[i]; var objectId = item["idCol"]; var node = ds.getNode(objectId); var nodetitle = node.getTarget(_mns('title')).getValue(); var nodeaddress = node.getTarget(_mns('location')).getValue(); try{var nodecountry = node.getTarget(_mns('country')).getValue();}catch(e){var nodecountry = '';}; try{var nodestate = node.getTarget(_mns('state')).getValue();}catch(e){var nodestate = '';}; try{var nodecounty = node.getTarget(_mns('county')).getValue();}catch(e){var nodecounty = '';}; try{var nodelocality = node.getTarget(_mns('locality')).getValue();}catch(e){var nodelocality = '';}; try{var nodepostal = node.getTarget(_mns('postal')).getValue();}catch(e){var nodepostal = '';}; } var menuarray = [nodetitle,nodeaddress,nodecountry,nodestate,nodepostal,nodecounty,nodelocality]; for (var i = 0; i < menuarray.length; ++i) { var arrayitem = menuarray[i]; var menuitem = document.createElement('menuitem'); menuitem.setAttribute('label',arrayitem); menuitem.setAttribute('value',arrayitem); menuitem.setAttribute('oncommand', 'amazonOpen(this.value);'); if (arrayitem != ''){ amazonmenu.appendChild(menuitem); } } for (var i = 0; i < menuarray.length; ++i) { var arrayitem = menuarray[i]; var menuitem = document.createElement('menuitem'); menuitem.setAttribute('label',arrayitem); menuitem.setAttribute('value',arrayitem); menuitem.setAttribute('oncommand', 'ebayOpen(this.value);'); if (arrayitem != ''){ ebaymenu.appendChild(menuitem); } } for (var i = 0; i < menuarray.length; ++i) { var arrayitem = menuarray[i]; var menuitem = document.createElement('menuitem'); menuitem.setAttribute('label',arrayitem); menuitem.setAttribute('value',arrayitem); menuitem.setAttribute('oncommand', 'mapscomOpen(this.value);'); if (arrayitem != ''){ mapscommenu.appendChild(menuitem); } } for (var i = 0; i < menuarray.length; ++i) { var arrayitem = menuarray[i]; var menuitem = document.createElement('menuitem'); menuitem.setAttribute('label',arrayitem); menuitem.setAttribute('value',arrayitem); menuitem.setAttribute('oncommand', 'upcomingOpen(this.value);'); if (arrayitem != ''){ upcomingmenu.appendChild(menuitem); } } } function amazonOpen(term){ var url = "http://www.amazon.com/gp/search?ie=UTF8&keywords="+term+"&tag=minimsideb-20&index=blended&linkCode=ur2&camp=1789&creative=9325" var newTab = mainWindow.getBrowser().addTab(url); mainWindow.getBrowser().selectedTab = newTab; } function ebayOpen(term){ var url = "http://rover.ebay.com/rover/1/711-1751-2978-71/1?AID=5463217&PID=2497462&mpre=http%3A%2F%2Fsearch-desc.ebay.com%2Fsearch%2Fsearch.dll%3Fsatitle%3D"+term var newTab = mainWindow.getBrowser().addTab(url); mainWindow.getBrowser().selectedTab = newTab; } function mapscomOpen(term){ var url = "http://www.dpbolvw.net/interactive?&sp-a=sp10030c64&sp-f=ISO-8859-1&sp-p=all&catseach=1&sp-t=dev_search&sp-q="+term+"&aid=193825&pid=2497462&url=http://promosearch.atomz.com/search/"; var newTab = mainWindow.getBrowser().addTab(url); mainWindow.getBrowser().selectedTab = newTab; } function upcomingOpen(term){ var url = "http://upcoming.yahoo.com/place/?loc="+term; var newTab = mainWindow.getBrowser().addTab(url); mainWindow.getBrowser().selectedTab = newTab; } // ################## end of dynamic about this code ###################### // ***************** miscellaeneous ************************** function multiAddressAdd(coords){ var geoList = $('multiaddress-list'); var title = geoList.selectedItem.getAttribute('title'); var url = geoList.selectedItem.getAttribute('url'); var description = geoList.selectedItem.getAttribute('description'); var accuracy = geoList.selectedItem.getAttribute('accuracy'); var country = geoList.selectedItem.getAttribute('country'); var state = geoList.selectedItem.getAttribute('state'); var county = geoList.selectedItem.getAttribute('county'); var locality = geoList.selectedItem.getAttribute('locality'); var postal = geoList.selectedItem.getAttribute('postal'); var street = geoList.selectedItem.getAttribute('street'); var altd = geoList.selectedItem.getAttribute('altd'); var lat = coords.split(',')[0]; var lng = coords.split(',')[1]; var data = {}; data.lat = lat; data.lng = lng; data.altd = altd; data.accuracy = accuracy; data.address = geoList.selectedItem.label; data.title = title; data.sourceurl = url; data.description = description; data.country = country; data.state = state; data.county = county; data.locality = locality; data.postal = postal; data.street = street; data.indexlabel = addressCount()+1; data.indexlabel = data.indexlabel.toString(); add_object(data); while (geoList.firstChild) geoList.removeChild(geoList.firstChild); geoList.setAttribute('hidden',true); var mapDeck = $('maps-deck'); mapDeck.setAttribute('hidden',false); minimapBrowserScope().gotoLatLng(lat,lng); } function shareLocation(type){ var linkMsg = minimapperstrings.GetStringFromName("firefox.maps.link"); var ds = flock_mapsGetDS(); var container = ds.getNode("urn:flock:maps:addresses"); var tree = $('address_list'); var treeSelection = flock_getTreeSelection(tree, ["idCol"]); for (var i = 0; i < treeSelection.length; ++i) { var item = treeSelection[i]; var objectId = item["idCol"]; var node = ds.getNode(objectId); var nodelat = node.getTarget(_mns('lat')).getValue(); var nodelng = node.getTarget(_mns('lng')).getValue(); var nodetitle = node.getTarget(_mns('title')).getValue(); var origtitle = nodetitle; nodetitle = encodeURIComponent(nodetitle); var url = 'http://maps.stcstm.org/?lat='+nodelat+'&lng='+nodelng+'&title='+nodetitle; var latlng = nodelat +','+ nodelng; var imageurl = "'http://i60.photobucket.com/albums/h6/mctones/spatial/status_but.png'"; var html = '<a href="http://maps.google.com/maps?q='+nodelat+','+nodelng+'('+nodetitle+')" style="text-decoration: none !important;"><span style="padding: 2px 0 2px 20px; background: url('+imageurl+') left center no-repeat;"><abbr class="geo" title="'+nodelat+';'+nodelng+'">'+origtitle+'</abbr></span></a>'; if (type == 'latlng'){ prompt('Copy and Paste the following:',latlng); } else if (type == 'html'){ prompt('Copy and Paste the following:',html); } else if (type == 'email'){ location.href = 'mailto:?body='+encodeURIComponent(url); } else { prompt(linkMsg,url); } } } // ################## end of dmiscellaeneous ###################### // ***************** kml/geoRss ************************** function addGeoXmlLayers(zoom){ var kmlMenu = $('kml-list'); while (kmlMenu.firstChild){ kmlMenu.removeChild(kmlMenu.firstChild); } minimapBrowserScope().clearGeoXml(); var ds = flock_mapsGetDS(); var container = ds.getNode("urn:flock:maps:kml"); var nodes = container.getChildren(); while ( nodes.hasMoreElements() ) { var node = nodes.getNext(); var source = ""; var checked = ""; var id =""; var title = ""; if (node.getTarget(_mns('id'))) id = node.getTarget(_mns('id')).getValue(); if (node.getTarget(_mns('kmlurl'))) source = node.getTarget(_mns('kmlurl')).getValue(); if (node.getTarget(_mns('kmltitle'))) title = node.getTarget(_mns('kmltitle')).getValue(); if (node.getTarget(_mns('kmlchecked'))) checked = node.getTarget(_mns('kmlchecked')).getValue(); minimapBrowserScope().addGeoXML(source,checked); // add richlistbox items var menuitem = document.createElement('richlistitem'); menuitem.setAttribute('id',id); menuitem.setAttribute('value',source); menuitem.setAttribute('style','overflow: hidden'); menuitem.setAttribute('onclick','webGotoXmlViewport(this)'); var checkbox = document.createElement('checkbox'); checkbox.setAttribute('id',id); checkbox.setAttribute('value',source); checkbox.setAttribute('checked',checked); checkbox.setAttribute('onclick','kmlListDo(this)'); menuitem.appendChild(checkbox); var label = document.createElement('label'); label.setAttribute('value',title); menuitem.appendChild(label); kmlMenu.appendChild(menuitem); } if (zoom){ var lastitem = kmlMenu.lastChild; var theid = lastitem.getAttribute('value'); minimapBrowserScope().gotoXmlViewport(theid); } } function addGeoXmlData(kml){ try{ var ds = flock_mapsGetDS(); var container = ds.getNode("urn:flock:maps:kml"); var date=new Date(); var id='obj_' + date.getTime(); var root = ds.getNode("urn:flock:maps:kml"); var node = ds.getNode("urn:flock:maps:kml:" + id); node.addTargetOnce(_mns('id'), "urn:flock:maps:kml:" + id ); node.addTargetOnce(_mns('kmlurl'), kml.url + "" ); node.addTargetOnce(_mns('kmltitle'), kml.title + "" ); node.addTargetOnce(_mns('kmlchecked'), kml.checked + "" ); root.addChild(node); ds.save(); addGeoXmlLayers(true); }catch(e){} } function kmlListDo(checkbox){ var kmlid = checkbox.id; var value = checkbox.getAttribute('value'); var checked = checkbox.getAttribute('checked'); if (checked == 'true'){ checked = 'false'; } else { checked = 'true'; } minimapBrowserScope().webAddXml(value, checked); var ds = flock_mapsGetDS(); var root = ds.getNode("urn:flock:maps:kml"); var node = ds.getNode(kmlid); node.addTargetOnce(_mns('kmlchecked'), checked); ds.save(); } function addKmlUrlPrompt(){ var params = { title: "kml link", url: "", cancelled: false }; window.openDialog("chrome://minimap/content/addKmlDlg.xul", "_blank", "modal,centerscreen", params); if (!params.cancelled){ var title = params.title; var url = params.url; var kml = {}; kml.title = title; kml.url = url; kml.checked = true; addGeoXmlData(kml); } } function extAddXml(source){ var title = content.document.title; var kml = {}; kml.title = title; kml.url = source; kml.checked = true; addGeoXmlData(kml); } function delete_Kml() { minimapBrowserScope().clearGeoXml(); var kmllist = $('kml-list').selectedItem; var objectId = kmllist.getAttribute('id'); var ds = flock_mapsGetDS(); var container = ds.getNode("urn:flock:maps:kml"); var node = ds.getNode(objectId); ds.deleteRecursive(node); container.removeChild(node); ds.save(); addGeoXmlLayers(); } function edit_Kml(){ var kmllist = $('kml-list').selectedItem; var objectId = kmllist.getAttribute('id'); var ds = flock_mapsGetDS(); var root = ds.getNode("urn:flock:maps:kml"); var node = ds.getNode(objectId); var title = node.getTarget(_mns('kmltitle')).getValue(); var url = node.getTarget(_mns('kmlurl')).getValue(); var params = { title: title, url: url, cancelled: false }; window.openDialog("chrome://minimap/content/editKmlDlg.xul", "_blank", "modal,centerscreen", params); if (!params.cancelled){ node.addTargetOnce(_mns('kmltitle'), params.title); node.addTargetOnce(_mns('kmlurl'), params.url); if (root.getChildIndex(node) == -1){ root.addChild(node); } ds.save(); addGeoXmlLayers(); } } function googleEarthKml(){ var kmllist = $('kml-list').selectedItem; var objectId = kmllist.getAttribute('id'); var ds = flock_mapsGetDS(); var root = ds.getNode("urn:flock:maps:kml"); var node = ds.getNode(objectId); var url = node.getTarget(_mns('kmlurl')).getValue(); var newTab = mainWindow.getBrowser().addTab(url); mainWindow.getBrowser().selectedTab = newTab; } function embed_Kml(){ var kmllist = $('kml-list').selectedItem; var objectId = kmllist.getAttribute('id'); var ds = flock_mapsGetDS(); var root = ds.getNode("urn:flock:maps:kml"); var node = ds.getNode(objectId); var title = node.getTarget(_mns('kmltitle')).getValue(); var url = node.getTarget(_mns('kmlurl')).getValue(); var params = { title: title, url: url, cancelled: false }; window.openDialog("chrome://minimap/content/embedKml.xul", "_blank", "chrome, centerscreen", params); } // ################## end of kml/georss ###################### function minimapBrowserScope(){ var src = window.location.href; if (src == "chrome://minimap/content/minimap.xul"){ return $('flock-maps-minibrowser').contentWindow; } else{ return mainWindow.content.wrappedJSObject.document.getElementById("flock-maps-minibrowser").contentWindow.frames.wrappedJSObject; } } function webGotoXmlViewport(item){ var source = item.getAttribute('value'); minimapBrowserScope().gotoXmlViewport(source); } function switchMinimapTabs(deck){ $('minimap-deck').selectedIndex = deck; } function minimapOpenUrl(url){ switch (url) { case "help": url = "http://minimap.spatialviews.com/index.php?option=com_content&view=article&id=35&Itemid=2"; break; case "home": url = "http://minimap.spatialviews.com"; break; case "release": url = "http://minimap.spatialviews.com/index.php?option=com_content&view=category&layout=blog&id=19&Itemid=58"; break; case "donate": url = "http://minimap.spatialviews.com/index.php?option=com_content&view=article&id=31&Itemid=54"; break; } var newTab = mainWindow.getBrowser().addTab(url); mainWindow.getBrowser().selectedTab = newTab; } function openMinimapEmbed(){ var ds = flock_mapsGetDS(); var container = ds.getNode("urn:flock:maps:addresses"); var tree = $('address_list'); var treeSelection = flock_getTreeSelection(tree, ["idCol"]); for (var i = 0; i < treeSelection.length; ++i) { var item = treeSelection[i]; var objectId = item["idCol"]; var node = ds.getNode(objectId); var nodelat = node.getTarget(_mns('lat')).getValue(); var nodelng = node.getTarget(_mns('lng')).getValue(); var nodetitle = node.getTarget(_mns('title')).getValue(); var params = { title: nodetitle, lat: nodelat, lng: nodelng, cancelled: false }; window.openDialog("chrome://minimap/content/embed.xul", "_blank", "chrome, centerscreen", params); } } function directionsTextboxFrom(value){ $('directions-from-textbox').value = value; } function directionsTextboxTo(value){ $('directions-to-textbox').value = value; }