$(document).ready(function(){
$('.header_item').mouseenter(function (event) {
$(this).children('.title_popp').addClass('show').text($(this).data('title'));
});
$('.header_item').mouseleave(function (event) {
$(this).children('.title_popp').removeClass('show');
});
$('.open_poppup').on('click', function (event) {
$(this).children('.inner_poppup').toggleClass('show');
});
$('.open_share_popup_js').on('click', function () {
$('.inner_poppup').removeClass('show');
$('.share_popup').toggleClass('open_share_popup');
$('#share_url').val(window.location.href).select();
try {
document.execCommand('copy');
//console.log('Copying text command was ' + msg);
} catch (e) {
}
$('.social_item ').each(function () {
var href = $(this).attr('href');
if($(this).hasClass('twitter_icon')){
$(this).attr('href', href + document.title + '+' + $('#share_url').val());
}
else{
$(this).attr('href', href + $('#share_url').val());
}
});
});
$('.open_sidebar_js').on('click', function (event) {
$('body').addClass('sidebar_opened');
$('.left_sidebar_item').removeClass('show');
var block = $(this).data('block');
$('.'+ block).addClass('show');
closeAllMenus();
});
$('.close_button').click(function () {
$(this).parent('.inner_poppup').removeClass('open_share_popup');
$('body').removeClass('sidebar_opened');
// if($(this).parent().hasClass('pmap_box')){
// }
});
});
function show_popup(elem){
$(elem).toggleClass('add_priority');
$('.open_help_menu_js').not(elem).removeClass('add_priority').parent('div').removeClass('active');
$(elem).siblings('.inner_poppup').toggleClass('show').parent('div').toggleClass('active');
$('.inner_poppup').not($(elem).siblings('.inner_poppup')).removeClass('show');
}
function checkClick(event, closestClass, hideElem, removedClass) {
if ($(event.target).closest(closestClass).length === 0) {
$(hideElem).removeClass(removedClass);
}
}
$(document).on('contextmenu click', function (e) {
checkClick(e, '.open_poppup, .fav_item, .personal_map_item', '.inner_poppup', 'show');
checkClick(e, '.open_fav_js, .fav_item, .mapPopup_favorites ', '.mapPopup_favorites', 'mapPopup_opened');
checkClick(e, '.personal_map_item', '.personal_map_item','active');
checkClick(e, '.open_help_menu_js ','.fav_item', 'active');
checkClickToAdd(e, '.geoSearchInput', '.searchResults', 'hide');
});
$(document).on('mousedown', function (e) {
checkClick(e, '.open_share_popup_js, .share_popup ', '.share_popup', 'open_share_popup');
});
function checkClickToAdd(event, closestClass, showElem, addClass) {
if ($(event.target).closest(closestClass).length === 0) {
$(showElem).addClass(addClass);
}
}
function showPos(){
$('#showPos_js').trigger('click');
}
$ = jQuery;
function closeAllMenus(){
$('#sideMenu').removeClass('sideMenu_opened');
$('#menu_shield').removeClass('menu_shield_opened');
}
function loadCss(url) {
var link = document.createElement("link");
link.type = "text/css";
link.rel = "stylesheet";
link.href = url;
document.getElementsByTagName("head")[0].appendChild(link);
}
// функция проверяет, есть-ли в инпуте текст
// если текст есть, то она отображает крестик "удалить результаты поиска"
// если текста нет, то скрывает крестик
function checkSearchInput(){
// console.log($('#geoSearchInput').length);
// console.log($('#geoSearchInput').val().length >= 1);
if($('#geoSearchInput').length > 0 && $('#geoSearchInput').val().length >= 1){
// console.log('1');
$('#searchGeoBox').addClass('searchGeoBox_typedText');
} else {
// console.log('2');
$('#searchGeoBox').removeClass('searchGeoBox_typedText');
$('#geoSearchInput').removeClass('geoSearchInput_loader');
}
}
/**
* Единый интерфейс для хранения массивов данных в Local Storage
*
* @param {string} bm_key - Ключ для хранения данных
*/
function StorageArray(bm_key) {
/**
* Получить массив элементов
* @returns {Array}
*/
this.getElements = function() {
var fromStorage = localStorage.getItem(bm_key);
if(!fromStorage) {
return new Array();
}
try {
var els_lines = JSON.parse(fromStorage);
if(!$.isArray(els_lines)) {
return new Array();
}
return els_lines;
}
catch(e) {
return new Array();
}
};
/**
* Удалить элемент из коллекции
* @param {object} element
*/
this.removeElement = function(element) {
var els_lines = this.getElements();
if(element !== undefined && els_lines.length > 0) {
els_lines.splice(element, 1);
localStorage.setItem(bm_key, JSON.stringify(els_lines));
}
};
/**
* Добавить элемент в коллекцию
* @param {object} element
*/
this.addElement = function(element) {
var current_els = this.getElements();
current_els.unshift(element);
localStorage.setItem(bm_key, JSON.stringify(current_els));
};
/**
* Удалить все элементы
*/
this.Clear = function() {
localStorage.removeItem(bm_key);
};
/**
* Добавить массив элементов к существующей коллекции
* @param {Array} parsed_import
*/
this.Import = function(parsed_import) {
var current_els = this.getElements();
current_els = current_els.concat(parsed_import);
localStorage.setItem(bm_key, JSON.stringify(current_els));
};
/**
* Получить коллекцию элементов в виде текста
* @returns {string}
*/
this.toString = function() {
return localStorage.getItem(bm_key);
};
};
var refreshMapList = function () {
$.ajax({
url: '/personal-map/list',
method: 'GET',
success: function (response) {
$('.pmap_box_container').html('');
response.forEach(function (item) {
var template = _.template($('#personal_map_list_template').html());
var innerHtml = template({
'title': item.title,
'number': item.id,
'url': item.url,
'icon': item.icon
});
$('.pmap_box_container').append(innerHtml);
});
$('.pmap_list_item_link').click(function(e) {
window.location.href = $(this).data('url');
});
$('.pmap_remove_js').click(function () {
var p_id = $(this).data('id');
$.ajax({
url: '/personal-map/remove',
data: {
'id': p_id
},
dataType: 'json',
method: 'GET',
success: function(response) {
if(response.status) {
$('#map_item'+p_id).remove();
}
}
});
});
}
});
};
var mapSyncMode = true;
$(function(){
$('.sync_map_btn').click(function(){
mapSyncMode = $(this).hasClass('sync_map_btn_off');
$(this).toggleClass('sync_map_btn_off');
return false;
});
$('.streetHousnumbers_mask').click(function(){
$('.streetHousnumbers_list').addClass('streetHousnumbers_expanded');
return false;
});
$(document).on('keyup', "#streets_index_search_attribute", function () {
$( ".link_to_street_parent" ).removeClass('searchFound');
$( ".letters_boxes_list" ).addClass('letters_boxes_list_search');
$( ".link_to_street_parent[data-name*='"+$("#streets_index_search_attribute").val()+"']" ).addClass('searchFound');
if($("#streets_index_search_attribute").val() == ''){
$( ".link_to_street_parent" ).removeClass('searchFound');
$( ".letters_boxes_list" ).removeClass('letters_boxes_list_search');
}
});
var $input = $("#streets_index_search"),
$context = $(".link_to_street");
$input.on("input", function() {
var term = $(this).val();
$('.searchFound').removeClass('searchFound');
if(term) {
$('.expand_box_letter_link').hide();
var parts = term.trim().split(' ');
var reg = new RegExp('('+parts.join('|')+')', "gi");
$context.each(function () {
var matches = $(this).text().match(reg);
var found = matches ? matches.length >= parts.length : false;
if(found) {
$(this).parent().addClass('searchFound');
$(this).parent().show();
}
else {
$(this).parent().hide();
}
});
var foundLists = $('.streets_list').has('.searchFound');
foundLists.parent().show();
$('.streets_list').not(foundLists).parent().hide();
}
else {
$('.streets_list').parent().show();
$('.expand_box_letter_link').show();
$context.parent().show();
}
});
$("#housenumber_index_search").on("input", function() {
var term = $(this).val();
if(term) {
var reg = new RegExp(term.trim(), "gi");
$('.housnumber_link').each(function () {
var matches = $(this).text().match(reg);
if(matches) {
$(this).show();
}
else {
$(this).hide();
}
});
$('.streetHousnumbers_list').addClass('streetHousnumbers_search');
}
else {
$('.housnumber_link').show();
$('.streetHousnumbers_list').removeClass('streetHousnumbers_search');
}
});
// $context = $(".link_to_street");
// $input.on("input", function() {
// var term = $(this).val();
// $context.parent().show();
// // $context.parents('.str_letter_box').show();
// $context.unmark();
// if (term) {
// $context.mark(term, {
// done: function() {
// $context.not(":has(mark)").parent().hide();
// // $context.parents('.str_letter_box').hide();
// }
// });
// }
// });
// https://jsfiddle.net/petrovnn/3Lyqco7k/9/
// $( "a:contains('шоссе Корытовское ')" ).addClass('searchFound');
$('.showempty_streets_link').click(function(){
$('.letters_boxes_list').toggleClass('show_empty_streets');
return false;
});
// развернуть все блоки с улицами (показать все улицы)
$('.letters_expandall_link').click(function(){
$('.letters_collapse_link').removeClass('btn_hidden');
$(this).addClass('btn_hidden');
$('.str_letter_box').addClass('str_letter_expanded');
return false;
});
// свернуть все блоки с улицами (скрыть все улицы)
$('.letters_collapse_link').click(function(){
$('.letters_expandall_link').removeClass('btn_hidden');
$(this).addClass('btn_hidden');
$('.str_letter_box').removeClass('str_letter_expanded');
return false;
});
$('.letter_box_close').click(function(){
$(this).parent().removeClass('str_letter_expanded');
return false;
});
$('.expand_box_letter_link').click(function(){
$(this).parent().addClass('str_letter_expanded');
return false;
});
// сохраняем дату редактирования термина таксономии
$('#edit-field-date-und-0-value-date').val($('#edit-field-date-und-0-value .description').text().replace(' Формат: ',''));
$("#dropMarker_link").on("focus",function(e){
$(this).select();
});
$("#dropMarker_link").on("mouseup",function(e){
return false;
});
$('.copy_latlon_js').mousedown(function(){
$(this).addClass('sideMenuLink_active');
$('#copy_latlon_input').select();
try {
var successful = document.execCommand('copy');
} catch(e) {}
$('#copy_latlon_input').blur();
setTimeout(function() {
$(this).removeClass('sideMenuLink_active');
}, 1000);
});
$('.copy_dms_js').mousedown(function(){
$(this).addClass('sideMenuLink_active');
$('#copy_dms_input').select();
try {
var successful = document.execCommand('copy');
} catch(e) {}
$('#copy_dms_input').blur();
setTimeout(function() {
$(this).removeClass('sideMenuLink_active');
}, 1000);
});
// центр карты
$('.intersects_js').click(function(){
if($(this).is(':checked')){
$(this).parent('.center_map').addClass('active');
$('.intersects').addClass('intersects_visible');
} else {
$(this).parent('.center_map').removeClass('active');
$('.intersects').removeClass('intersects_visible');
}
});
// скопировать ссылку
$('#android_copyLink').click(function(){
$('#current_url').val(window.location.href).select();
try {
document.execCommand('copy');
//console.log('Copying text command was ' + msg);
} catch (err) {
//console.log('Oops, unable to copy');
}
$('#current_url').blur();
return false;
});
if(typeof Android != 'undefined' || typeof MapViewer != 'undefined') {
$('#sideMenu').addClass('sideMenu_android');
// экран всегда включен
$('#hold_display').change(function(){
if($(this).is(':checked')){
Android.bm_holdDisplay(true);
}
else{
Android.bm_holdDisplay(false);
}
});
$('.dots_js').click(function(){
Android.showOptionsMenu();
});
$('#android_copyLink').click(function(){
Android.bm_message('УРЛ скопирован');
});
// выход из программы
$('#android_exit').click(function(){
Android.bm_exit();
});
}
$('.mapInputImport_js').keyup(function(){
var addr = jQuery('.mapInputImport_js').val();
// openstreetmap
if(addr.indexOf("openstreetmap") > -1){
//http://www.openstreetmap.org/#map=14/44.2828/6.5169
//http://www.openstreetmap.org/?mlat=44.28278&mlon=6.51694&zoom=14#map=14/44.2828/6.5169
// если в адресе есть mlat (маркер) - берем данные из маркера
if(addr.indexOf("mlat") > -1){
// разбиваем урл на две части вопросом
var addr_two = addr.split('?');
var addr_two_2 = addr_two[1].split('#');
var addr_two_3 = addr_two_2[0].split('&');
if(addr_two_3 != undefined){
lat = addr_two_3[0].substring(5,15);
lon = addr_two_3[1].substring(5,15);
zoom = addr_two_3[2].substring(5,10);
console.log(lat+' | '+ lon);
map.panTo(new google.maps.LatLng(lat, lon ));
map.setZoom(parseInt(zoom));
}
// если нет маркера, берем координаты из стандартной строки OSM
} else {
// разбиваем урл на две части решеткой
var addr_two = addr.split('#');
}
// разбиваем правую часть на две части до решетки и после
var addr_array = addr_two[1].split('&'); // разбиваем
var zoom_level = '';
for (var j=0; j
\n' +
' Удалить\n' +
'