WME Add alt address for housing

Добавление альтернативных названий (адресов)

目前为 2015-09-05 提交的版本,查看 最新版本

// ==UserScript==
// @name         WME Add alt address for housing
// @version      0.1
// @description  Добавление альтернативных названий (адресов)
// @author       ixxvivxxi
// @include      https://www.waze.com/editor/*
// @include      https://www.waze.com/*/editor/*
// @include      https://editor-beta.waze.com/editor/*
// @include      https://editor-beta.waze.com/*/editor/*
// @grant        none
// @namespace    
// ==/UserScript==

function altAddress_bootstrap()
{
	var bGreasemonkeyServiceDefined = false;

	try
	{
		if ("object" === typeof Components.interfaces.gmIGreasemonkeyService)
		{
			bGreasemonkeyServiceDefined = true;
		}
	}
	catch (err)
	{
		//Ignore.
	}
	if ( "undefined" === typeof unsafeWindow  ||  ! bGreasemonkeyServiceDefined)
	{
		unsafeWindow    = ( function ()
		{
			var dummyElem   = document.createElement('p');
			dummyElem.setAttribute ('onclick', 'return window;');
			return dummyElem.onclick ();
		} ) ();
	}
	/* begin running the code! */
	setTimeout(startAltAddress,999);
}



function startAltAddress() {
  Waze.selectionManager.events.register("selectionchanged", null, showTitle);
  var wazeActionUpdateObject = require("Waze/Presenter/Alias/Item");  
  console.log(wazeActionUpdateObject);  
    
    function showTitle() {
        console.log("Выбрал!");
        if(Waze.selectionManager.selectedItems.length == 0 || Waze.selectionManager.selectedItems.length > 1) return;
        if(Waze.selectionManager.selectedItems[0].model.type == "venue") {
            
            var elem = $('<button class="btn btn-default add-alt-address">Добавить альтернативные адреса</button>').bind( "click", function(event) {
              event.preventDefault();
              var name = $("#landmark-edit-general input[name='name']").val(),
              arr = name.split(' '),
              length = arr.length,
              arrNames = [],
              str = '';
                if (length > 1) {
                    for (var i = 1; i < length; i++) {
                      str = str + ' ' + arr[i];
                    }
                    str = str.trim();
                    
                    if (arr[0].indexOf("/") != -1) {
                      arrNames.push(str + ' ' + arr[0]);
                      arrNames.push(arr[0]. replace('/', 'к')  + ' ' + str); 
                      arrNames.push(str  + ' ' + arr[0]. replace('/', 'к'));
                      addAltNames(arrNames);  
                    } else if (isChar(arr[0])) {
                       arrNames.push(str + ' ' + arr[0]);
                       addAltNames(arrNames); 
                    }
                }
            });
            
            $("#landmark-edit-general .aliases-view").append(elem);
        }
        
    }  
    
    function addAltNames(arr) {
        for (var i = 0; i < arr.length; i++) {
          $("#landmark-edit-general .aliases-view .add").click();
           var elem;
          $('#landmark-edit-general .aliases-view input[type=text]').each(function(index){
              if(i == index) {elem = $(this);}
          });
          elem.val(arr[i]);
          elem.change();    
            
        }  
    }
    
    function isChar(number) {
      var reg = /([0-9])[А-Яа-я]/;
      switch (true) {
        case reg.test(number):
          return true;
          break;
        default:
          return false;
      }
    }
    
}

altAddress_bootstrap();