Greasy Fork is available in English.

WME Bookmarks

Bookmark your places on the map

Version au 26/08/2014. Voir la dernière version.

// ==UserScript==
// @name        WME Bookmarks
// @version     0.11
// @description Bookmark your places on the map
// @namespace   Sebiseba
// @include     https://www.waze.com/editor/*
// @include     https://www.waze.com/*/editor/*
// @include     https://editor-beta.waze.com/*
// @icon        data:image/png;base64,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
// @URL  		https://greasyfork.org/scripts/4515-wme-bookmarks
// @grant       none
// @copyright   Sebiseba 2014
// ==/UserScript==

// icon from ©iconza (https://www.iconfinder.com/iconsets/iconza)

var WMEF_Version = GM_info.script.version;
var icon_signet    ="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";
var icon_addlink   ="iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAB0UlEQVR4XqVVgW3CQAz8RB0g3YBOUBALlAlKJ0iYgHQCYALoBDQThA2SBRB0AtiAbEDvpUN52WBQOOn0L7+Vi517J3IdMBwOEyw5mII9hmvwZ7vdbtwVRB1E+ljKVkDhF2ITGYw7iFRCRCJD3lgJdRBJgvACfAXfwH0Qn0qhlydEJmjRL/cNcr6wHnj2oSu6L+LbNOMbN0qE4JnE40J44JEt+sbet2lAEYk82B+VkGVhcA2eENh5cj/1ZyI3Y9UXFErIcNcOzMR3SRirhMhaVLMyhEwLN+QF/VBE5H2htep7RffcxW+z4nlO627AvysiI+TS5krItjD4znYthODSFNFC9j3B2fmKhRNbRCOmg0rjMoYPSETeUYkYNp6D54DZLZsHOSfGEuZkYHU55z6TQocgYX7T7lw9xUvsKKDIs4T2bm2s/E8LB5d16cmx5FHR6rdAgwGibT0pIs5PQXW5rMARMg5mfnrXwbQtOYUbzq6Z4a5P9zjSiD+p0s7TFg4rQDwS+Son5j9eTWPbwjbMycDKUnAcCBTgSs4u5ldty9vKZCVE/eIIVgY+jEIImbmRewL+ntDCFvYoYhC75zAC95YIc1z3ivSlToNW1mAR/vL/Acg9BLVmh/IBAAAAAElFTkSuQmCC";
var icon_delete    ="iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJMSURBVHjaxJZLaxRBEMerd4PZWSNJFM3mJMQHG0WQSAjBx8lr/ALCnvSar+DOTeM9hxyFfAHzDZQQRAyCiQZfmGTzwH0Z1Bj3MZ2qprrp7ZmdNcKSgR/T3VtV/5rq6maFlBK6+SSgy8/xCuyIk1OdAnSyEe4eoIMekuNz5B6y0MY/ZDMsf7dakIDNNqSJKUTKW3clvWmOY7AxNrmHxoZ83XhRX6CyytycNGu7i0vgfImyGc7dB6hWQVaqxga/YKFTiWRmciJUi92lV1oETPBKBWS50mKDAqLTJvtkKIOghaGJceB6q+CyXIagWDK/cwL+v25yHnl0bvxGSD05mgVZKqng+vn++o0Onnc3Oa6LlMjZseuxbVpcfmuCR3VR3DkgB58CuOXSuMGPeg5MJ5+5djXSufxuVcWw147yBSq42tBmEMnpK6PK5n+vChW8sbWN5WgqAn7bDGYvx4ok4oLXC1tQ29iEALMlfqx9hCqi55r+SxfbiiTaBt8sQH19AzBtxd6nz3pDfTXmdU3/hZFIkciDtvNsHmrf1k237H35aneL6i5aszvKsom+7PTDl12eLrCf57PqIitA2udkDLRm27BP6LKzBajdkkgv0rcG3mNyfA/eDM6HkAx1oUVmBbynZPMBvCc4HyA/9k/qI2DOgRCCMjvBRqeQ1EtITd+Ggzl2SHASgmtNBC8g9eAOHMziuI78QX4xNYwduAI9iIekOZMeDm4LmOqSANJkGshfZJ+FGq6ALpNda+FkHtpCS0iykJpLXfdu/205FGAAoerA0rygBN8AAAAASUVORK5CYII=";
var icon_comment   ="iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGlSURBVHja1JW9TsMwEMftlI+CqNShICGqIjGwM8Ej8ACMbJQngJm0vAaMLH0DngDBxM6ABHRoC0O/CEqc2tyVc3WNolSpmgFLJ9eN7/873zkXxxgjsjRHZDwyByzxxe75E041MHdOvTr6v90cxgOs+MH+ltgsrqdS/ux64vml4zKdWMBEvNMPUyZ7ReyVS+K1+eUmAcbi7d6feLunUmYol1wDO/B6tbrB4ovMEGNIZgDU1jpTAJ5A//MUZQbAF0YIORdAqXBmL6rD2yj6337qrqmUEp7n2XaR2CrER6ub2IsKhY3Jb98PRBAEU71oVg1q0U3R54PB0LUQFIfmJiMNM027NnEB1AGSrshSSlGpPk49fL89spHJiN915exBAuSKfCX4xt4KaW8LbqITIXSZ5hz95xCEg0z59P7CyRcvIZASrEdgeI0UzRq0Da+BJGFMbgEsT+scA1kIRmWad8eN7ZMG7t0h4R+wIRlW3vAT2OjXwPBrs8pOwQG8OJoit9H7YB6BQtDW/ASaohjRJisYlx4OsSBDvsamZ6rItDYsooWMXwEGAHyKIA9iDp/UAAAAAElFTkSuQmCC";
var icon_nocomment ="iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGeSURBVHja1JXNTsJAEMd3KUZrMB6QeDDeuPEM+gY+BDwAFz0LmPAC3IGLF8++gNFn4MaNk0GigX5a6DoDO3XbNMUS9uAmk+222/9vZmd3lgshmM5WYJqbdkBRHQyHb9i1wVo76nXw/3r9Kh1A4rXaJSuXS7mUZzOLjUaTlqKTCojEHcfLBTDNIqtWz9l4/N7KAqzFbXsjblluLohh8OwcUMOtu1i4+0/yL4CxMBQ6AQIAoT4Aer9a/ecItOYADwwgdgJ4frC1FnXgNLL53FsD8pjrBuzr06FykVkq2GTykVmLKpWT6Nm2fTj137FatK2a4gSeYZ3pdBFNluL0rb2Pct1OQv6UZM45GwxeYx8bjWsqLski89Dvv3CA3NM8+Dd1V3C6MjkSNhEh9ED2hnxXUJYh2s293vNtqXR6B4AzGK/AlmCB7EPQFmqSuRTGiwCzeCTHhgIiCHolms2bp273EedeSGGskJY0TI5QIyDvTbBjsEMlChUQRYBeSs/Jex/zLkFL0A5VAEVRSCxL2vKoEAIJCRK0PLEc6Go/AgwAQQrZygXnINMAAAAASUVORK5CYII=";
var icon_valid	   ="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";

/* helper function */

function getId(node) {
  return document.getElementById(node);
}

function getElementsByClassName(classname, node) {
    node || (node = document.getElementsByTagName("body")[0]);
    for (var a = [], re = new RegExp("\\b" + classname + "\\b"), els = node.getElementsByTagName("*"), i = 0, j = els.length;i < j;i++) {
      re.test(els[i].className) && a.push(els[i]);
    }
    return a;
}
  
function getFunctionWithArgs(func, args) {
    return (
        function () {
            var json_args = JSON.stringify(args);
            return function() {
                var args = JSON.parse(json_args);
                func.apply(this, args);
            }
        }
    )();
}

/* Bootstrap */

function BKM_bootstrap() {
  if (typeof unsafeWindow === "undefined") {
    unsafeWindow    = ( function () {
      var dummyElem = document.createElement('p');
      dummyElem.setAttribute('onclick', 'return window;');
      return dummyElem.onclick();
    }) ();
  }

  /* begin running the code! */
    console.log("WME Bookmarks: " + WMEF_Version + " starting");
    BKMinit();
}

/* Verif */

function BKMinit(){
	// Verify localStorage
	if ("undefined" === typeof localStorage.WMEBookmarks) {
		localStorage.setItem('WMEBookmarks', "");
	}
	
	// Waze object needed
	BKMWaze = unsafeWindow.Waze;
	if(typeof(BKMWaze) === 'undefined'){
        console.error("WME Bookmarks - BKMWaze : NOK");
		window.setTimeout(BKMinit, 500);
		return;
	}
 	BKMlocation = BKMWaze.location;
	if(typeof(BKMlocation) == 'undefined'){
        console.error("WME Bookmarks - BKMlocation : NOK");
		window.setTimeout(BKMinit, 500);
		return;
	} 
    BKMcountry = BKMWaze.model.countries.top;
	if(typeof(BKMcountry) == 'undefined'){
        //console.error("WME Bookmarks - BKMcountry DOM : NOK");
		window.setTimeout(BKMinit, 500);
		return;
	}
    //    Traductions
     BKMI18n = unsafeWindow.I18n;
    if(typeof(BKMI18n) === 'undefined'){
        console.error("WME Bookmarks - BKMI18n : NOK");
        setTimeout(BKMinit, 500);
        return;
    }  
	//	Waze GUI needed
   BKMhandle = getId("user-info");
    if(typeof(BKMhandle) === 'undefined'){
        console.error("WME Bookmarks - BKMhandle : NOK");
        setTimeout(BKMinit, 500);
        return;
    }
   BKMhandleClass = getElementsByClassName("nav-tabs", BKMhandle)[0];
    if(typeof(BKMhandleClass) === 'undefined'){
        //console.error("WME Bookmarks - BKMhandleClass : NOK");
        setTimeout(BKMinit, 500);
        return;
    }
   BKMhandleClass2 = getElementsByClassName("tab-content", BKMhandle)[0];
    if(typeof(BKMhandleClass2) === 'undefined'){
        //console.error("WME Bookmarks - BKMhandleClass2 : NOK");
        setTimeout(BKMinit, 500);
        return;
    }
    
    // Translation
   	var BKMLang = BKMI18n.locale;
    if (BKMLang  == "fr") { lang = new Array("Favoris","Noms","Nom","Supprimer ","Commentaire","Sans Nom"); }
    else { lang = new Array("Bookmarks","Names","Name","Delete ","Comment","Unnamed"); }

    // Then running
    console.log("WME Bookmarks - Ready to start");
    BKMcountryActive = BKMWaze.model.countries.top.name;
    BKMCheckCountry();
    BKMcss();
    BKMhtml();
}

function BKMhtml() {
    //Create content in favorite's tab
    var newtab = document.createElement('li');
    newtab.innerHTML = "<a href='#sidepanel-favorites' data-toggle='tab'><img style='height:16px;' title='"+ lang[0] +"' src='data:image/png;base64,"+ icon_signet +"' /> "+ lang[0] +"</a>";
	BKMhandleClass.appendChild(newtab);
    
    var addon = document.createElement('section');
    addon.id = "favorites-addon";
  
    // Bookmarks list
    var content="<div style='float:left;'><b><a href='http://sebiseba.free.fr/WME/WME_Bookmarks.user.js' target='_blank'><u>WME Bookmarks</u></a></b> " + WMEF_Version + "</div>";
    content += "<div id='addBKMButton' style='float:right; height:34px;'></div>";
    content += "<div class='divEntete'><div id='divEnteteNom'><b>"+ lang[1] +"</b></div><div id	='divEntetePays'>"+ BKMcountryActive +"</div></div>";
    
    // Bookmarks container
    content += "<div id='BKMcontent'></div>";
    
    // Editing infos
    content += "<div id='BKMEdit'></div>";
            
    addon.innerHTML  = content; 
 	addon.id = "sidepanel-favorites";
    addon.className = "tab-pane";
	BKMhandleClass2.appendChild(addon);

	console.info("WME Bookmarks HTML loaded");
    
	BKMLoad();
	BKMTestLoad();
}

function BKMInsertPermalink() {
    //Get link
	var link="";
	var	a = getElementsByClassName("WazeControlPermalink")[0].innerHTML;
    var b = a.substring(a.indexOf("https")).split('?');
    var c = b[1].split(/"/g);
    var d = c[0].split('&amp;');

    for (i=0; d[i]; i++) {
        if (d[i].substring(0,3)=="lon" || d[i].substring(0,3)=="lat") { link = link + d[i].substring(4) +"&"; }
        if (d[i].substring(0,4)=="zoom") { link = link + d[i].substring(5,6) +"&"; }
    } 
    link = link.substring(0,link.length-1);

    //Get name
    var town = getElementsByClassName("WazeControlLocationInfo")[0];
	var name = town.innerHTML.split(",");
    name = name[0].substring(6);
    if (!name) { name = lang[5]; }
    //console.info("WME Bookmarks Add link: "+name+"/"+BKMcountry);
  
    //Add in HTML table
    var id = new Date().getTime();
    BKMTableHTML(name,link,"");
    
    //Add in memory
    var newbkm = BKMcountryActive +"|"+ name +"|"+ link +"|,";
    var tosave = localStorage.getItem("WMEBookmarks") + newbkm;
    localStorage.setItem("WMEBookmarks", tosave);
    console.info("WME Bookmarks Save Memory: "+ tosave);
}

function BKMLoad() {
    var listfav= localStorage.getItem("WMEBookmarks");
    if (listfav) {
        var a = listfav.split(',');
		for (var i = 0; a[i]; i++) {
            var b = a[i].split('|');
            if (b[0] == BKMcountryActive) { BKMTableHTML(b[1],b[2],b[3]); }
        }
    	console.info("WME Bookmarks all ID loaded, script ready");
    } else {
        console.info("WME Bookmarks no ID to load, script ready");
    }
}

function BKMTableHTML(name,link,comment) {
    var div = document.createElement('div');
    div.className="divBKM";
    
    var divname = document.createElement('div');
    divname.className="divName";
    
    var divnamea = document.createElement('a');
    divnamea.innerHTML="<b>"+name.substring(0,36)+"</b>";
    divnamea.href = "#";
    divnamea.onclick = getFunctionWithArgs(BKMJump, [link]);
    divname.appendChild(divnamea);
    div.appendChild(divname);                                    
     
    var divsuppr = document.createElement('div');
    divsuppr.className="divSuppr";

    var divsuppra = document.createElement('a');
    divsuppra.innerHTML="<img style='width: 16px;' title='Suppr' src='data:image/png;base64," +icon_delete +"' />"; 
    divsuppra.href = "#";
    divsuppra.onclick = getFunctionWithArgs(BKMSuppr, [name,link]);
    divsuppr.appendChild(divsuppra);
    div.appendChild(divsuppr); 
    
    var divcomment = document.createElement('div');
    divcomment.className="divSuppr";

	var divcommenta = document.createElement('a');
    if (comment == "") { divcommenta.innerHTML="<img style='width: 16px;' title='+' src='data:image/png;base64," +icon_nocomment +"' />"; }   
    else { divcommenta.innerHTML="<img style='width: 16px;' title='"+comment.replace(/\'/g,'&#39;').replace(/"/g,'&quot;')+"' src='data:image/png;base64," +icon_comment +"' />"; }
	divcommenta.href = "#";
    divcommenta.onclick = getFunctionWithArgs(BKMAddEdit, [name,link,comment]);
    divcommenta.onmouseover = getFunctionWithArgs(BKMTooltip, [comment]);
    //divcommenta.onmouseover = (function() { console.info("WME Bookmarks Test: "+this.offsetLeft+" / "+this.offsetTop)});
    divcomment.appendChild(divcommenta);
    div.appendChild(divcomment); 

	getId('BKMcontent').appendChild(div);
}

function BKMAddEdit(name,link,comment) {
    getId('BKMEdit').style.display = "block"; 
    var content1 = "<div id='divEditTitre'><div id='divEdit'>"+ lang[2] +"</div><input type='text' id='divEditName' value='"+name.replace(/\'/g,'&#39;').replace(/"/g,'&quot;')+"' />";
	content1 += "<div class='divSuppr'><a href='#'><img id='EditValid' style='width: 16px; margin-top:3px;' title='Valid' src='data:image/png;base64," +icon_valid +"' /></a></div>";
	content1 += "</div><div><div id='divComm'>"+ lang[4] +"</div><textarea id='divCommEdit'>";
    if (comment == "") { content1 += ""; } else { content1 += comment; }
    content1 += "</textarea></div>";
    getId('BKMEdit').innerHTML=content1;
    getId('EditValid').onclick = getFunctionWithArgs(BKMEditLink, [link]);
}

function BKMcss() {
    var cssElt = document.createElement("style");
	cssElt.type = "text/css";
    var css = "img { vertical-align:top;}";
    css += ".divEntete { clear:both; line-height:22px; height:26px; padding-left:5px; border:2px solid #3d3d3d; background-color:#BEDCE5;}";
    css += "#divEnteteNom { float:left; text-align:left; border-right:2px solid #3d3d3d; width:80px; }";
    css += "#divEntetePays { float:right; text-align:right; padding-right:10px; font-weight:bold; }";
    css += ".divBKM { clear:both; line-height:16px; height: 24px; padding:3px; border: 1px solid #3d3d3d; border-top:0; }";
    css += ".divName { float:left; text-align:left; padding-left:5px; width:230px; }";
    css += ".divSuppr { width:20px; float:right; }";
    css += "#BKMEdit { display:none; height:135px; margin-top:20px; border:2px solid #3d3d3d; }";
    css += "#divEditTitre { line-height:24px; height:24px; border-bottom:1px solid #3d3d3d; }";
    css += "#divEdit     { float:left; width: 50px; height:23px; text-align:left; padding-left:5px; font-weight:bold; background-color:#BEDCE5; }";
    css += "#divEditName { float:left; width:195px; height:23px; padding:0; padding-left:5px; border:0; margin:0; }";
    css += "#divComm { float:left; width:100%; line-height:24px; height:23px; padding-left:5px; text-align:left; font-weight:bold; background-color:#BEDCE5; border-bottom:1px solid #3d3d3d; }";
    css += "#divCommEdit { float:left; width:275px; height:81px; border:0; margin:0; padding:2px; resize:none; }";
    cssElt.innerHTML = css;
    document.body.appendChild(cssElt);
    console.info("WME Bookmarks CSS loaded");
}

function BKMSuppr(name,id) {
    var answer = window.confirm(lang[3]+name+" ?");
    if (answer){
    	//console.info("WME Bookmarks Suppr: "+id);
    	var listfav= localStorage.getItem("WMEBookmarks");
    	var a = listfav.split(','), tosave="";
		for (var i = 0; a[i]; i++) {
    	    var b = a[i].indexOf(id);
    	    if (b == -1) { tosave = tosave + a[i] + ","; }
    	}
    	localStorage.setItem("WMEBookmarks", tosave);
    	getId('BKMcontent').innerHTML="";
    	BKMLoad(); 
    }
}

function BKMEditLink(link) {

    var newname = getId('divEditName').value;
    var newcomment = getId('divCommEdit').value;
    getId('BKMEdit').style.display = "none";
    // console.info("WME Bookmarks New Values: "+newname+" "+newcomment);
    
    var listfav= localStorage.getItem("WMEBookmarks");
	console.info("WME Bookmarks localStorage: "+ listfav); 
    var a = listfav.split(','), tosave="";
	for (var i = 0; a[i]; i++) {
        var b = a[i].indexOf(link);
        if (b == -1) { tosave = tosave + a[i] + ","; }
        else { 
            var c = listfav.split('|');
            tosave = tosave + c[0] +"|"+ newname +"|"+ link +"|"+ newcomment +",";
        }
    }
    localStorage.setItem("WMEBookmarks", tosave);
    getId('BKMcontent').innerHTML="";
    BKMLoad(); 
}

function BKMTooltip(mx,my,comment) {
    console.log("WME Bookmarks Tooltip : "+comment);
}
function BKMJump(xy) {
    var coord=xy.split('&');
    //console.log("WME Bookmarks Move to: "+ coord[0] +" / "+ coord[1] +" / Zoom: "+ coord[2]);
    var xy = OpenLayers.Layer.SphericalMercator.forwardMercator(parseFloat(coord[0]), parseFloat(coord[1]));
    unsafeWindow.Waze.map.setCenter(xy);
    unsafeWindow.Waze.map.zoomTo(coord[2]);
    BKMTestLoad();
}

function BKMTestLoad() {
    var loaded = Waze.map.controls[5].pending;
    //console.error("WME Bookmarks Scan Map Loaded : "+ loaded.length);
    if(loaded.length != 0){
        getId('addBKMButton').innerHTML="";
        setTimeout(BKMTestLoad, 500);
        return;
	}
    getId('addBKMButton').innerHTML="<a href='#'><img style='height:24px; border:1px solid #93C4D3; padding:3px; margin-bottom:10px;' id='AddIcon' title='Add' src='data:image/png;base64," + icon_addlink + "' /></a>";
    getId('AddIcon').onclick = BKMInsertPermalink;
    setTimeout(BKMTestLoad, 2000);
}

function BKMCheckCountry() {
    var BKMcountryActive2 = BKMWaze.model.countries.top.name;
    if (BKMcountryActive != BKMcountryActive2) {
        console.log("WME Bookmarks Country changed : "+ BKMcountryActive+" / "+BKMcountryActive2);
        BKMcountryActive = BKMcountryActive2;
        getId('BKMcontent').innerHTML="";
        getId('divEntetePays').innerHTML=BKMcountryActive;
        BKMLoad();
    }
    setTimeout(BKMCheckCountry, 2000);
}
/* begin running the code! */

BKM_bootstrap();