На сайте реализована смена городов через сниппет. Работает во всех браузерах кроме Mozilla, но даже там где работает это происходит с перерывами на глюк, когда города перестают какое-то время меняться, при том это не зависит от каких-то действий пользователя, абсолютный рандом. Ошибок по JS в окне разработчика нет.
Вызов выглядит так:
1490542
<а href="#block-views-cities-block" data-toggle="modal" data-target="#block-views-cities-block" class="colorbox-inline">
        <img src="#" alt="city"> [ [ !getGEOInfo? &type=`city` ] ] 
        [ [ !+gl.real.country.id:select=`122=Алматы&36=Минск`:else=` [ [ !+gl.real.region.id:select=`524925=Москва&536199=Санкт-Петербург&826294=Владимир&553899=Калуга&501165=Ростов-на-Дону&1496745=Новосибирск&578853=Уфа&703883=Крым`:else=`Москва` ] ] ` ] ] 
   </а>


Сниппет:
<?php
$regionId = $modx->getPlaceholder('gl.real.region.id');     
$regionName = $modx->getPlaceholder('gl.real.region.name_ru');   

$arrCity = array(
    524894 => 'Москва',
    524925 => 'Москва',
    536203 => 'Санкт-Петербург',
    826294 => 'Владимир',
    1490542 => 'Екатеринбург',
    553899 => 'Калуга',
    1496745 => 'Новосибирск',
    578853 => 'Уфа',
    501165 => 'Ростов-на-Дону',
    542415 => 'Краснодар',
    487839 => 'Ставрополь',
    472039 => 'Воронеж',
    479119 => 'Ульяновск',
    484048 => 'Казань',
    499068 => 'Самара',
    36 => 'Минск',
    122 => 'Алматы',
    703883 => 'Крым',
    2027748 => 'Благовещенск',
    2026639 => 'Биробиджан',
    2013162 => 'Якутск',
    2022890 => 'Хабаровск',
    2021851 => 'Комсомольск-на-Амуре',
    2121529 => 'Южно-Сахалинск',
    2125072 => 'Петропавловск-Камчатский',
    2123627 => 'Магадан',
    2013348 => 'Владивосток',
    2019528 => 'Находка',
    2014006 => 'Уссурийск',
    1488754 => 'Тюмень',
    1490624 => 'Сургут',
    524304 => 'Мурманск',
    581043 => 'Архангельск',
    545854 => 'Сыктывкар',
    567293 => 'Махачкала'
);

$arrPhones = array(
    524894 => '+7 (495) 128-11-33',
    524925 => '+7 (495) 128-11-33',
    536203 => '+7 (812) 603-70-74',
    826294 => '+7 (4922) 49-45-95 ', 
    1490542 => '+7 (343) 302-08-19', 
    553899 => '+7 (4842) 27-86-65', 
    1496745 => '+7 (383) 235-97-97', 
    578853 => '+7 (347) 225-75-28', 
    501165 => '+7 (863) 333-52-96', 
    542415 => '+7 (861) 212-10-51', 
    487839 => '+7 (865) 257-76-79', 
    472039 => '+7 (473) 212-26-68', 
    479119 => '+7 (8422) 31-51-67', 
    484048 => '+7 (843) 207-09-57', 
    499068 => '+7 (846) 219-26-86',
    36 => '+375(44) 794-19-17',
    122 => '+7 (727) 350-61-00',
    703883 => '+7 (800) 350-08-74',
    2027748 => '+7 (383) 235-97-97',
    2026639 => '+7 (383) 235-97-97',
    2013162 => '+7 (383) 235-97-97',
    2022890 => '+7 (383) 235-97-97',
    2021851 => '+7 (383) 235-97-97',
    2121529 => '+7 (383) 235-97-97',
    2125072 => '+7 (383) 235-97-97',
    2123627 => '+7 (383) 235-97-97',
    2013348 => '+7 (383) 235-97-97',
    2019528 => '+7 (383) 235-97-97',
    2014006 => '+7 (383) 235-97-97',
    1488754 => '+7 (3452) 39-65-53',
    1490624 => '+7 (3452) 39-65-53',
    524304 => '+7 (812) 603-70-74',
    581043 => '+7 (812) 603-70-74',
    545854 => '+7 (812) 603-70-74',
    567293 => '+7 (863) 333-52-96'
);

$arrPrice = array(
    524894 => 1,
    524925 => 1,
    536203 => 1,
    826294 => 1,
    1490542 => 1.05,
    553899 => 1,
    1496745 => 1.15,
    578853 => 1.05,
    501165 => 1.05,
    542415 => 1.05,
    487839 => 1.05,
    472039 => 1,
    479119 => 1.05,
    484048 => 1.05,
    499068 => 1.05,
    36 => 1,
    122 => 1.1,
    703883 => 1.1,
    2027748 => 1.32,
    2026639 => 1.32,
    2013162 => 1.32,
    2022890 => 1.37,
    2021851 => 1.37,
    2121529 => 1.37,
    2125072 => 1.37,
    2123627 => 1.37,
    2013348 => 1.37,
    2019528 => 1.37,
    2014006 => 1.37,
    1488754 => 1.1,
    1490624 => 1.15,
    524304 => 1.1,
    581043 => 1.1,
    545854 => 1.1,
    567293 => 1.15
);

$arrSesCity = array(
    1 => array('Москва', '+7 (495) 128-11-33', 26, 1),
    2 => array('Санкт-Петербург', '+7 (812) 603-70-74', 84, 1),
    3 => array('Владимир', '+7 (4922) 49-45-95 ', 85, 1),
    4 => array('Екатеринбург', '+7 (343) 302-08-19', 86, 1.05),
    5 => array('Калуга', '+7 (4842) 27-86-65', 87, 1),
    6 => array('Новосибирск', '+7 (383) 235-97-97', 93, 1.15),
    7 => array('Уфа', '+7 (347) 225-75-28', 96,  1.05),
    8 => array('Ростов-на-Дону', '+7 (863) 333-52-96', 94,  1.05),
    9 => array('Краснодар', '+7 (861) 212-10-51', 694,  1.05),
    10 => array('Ставрополь', '+7 (865) 257-76-79', 694,  1.05),
    11 => array('Воронеж', '+7 (473) 212-26-68', 681, 1),
    12 => array('Ульяновск', '+7 (8422) 31-51-67', 616, 1.05),
    13 => array('Казань', '+7 (843) 207-09-57', 615, 1.05),
    14 => array('Самара', '+7 (846) 219-26-86', 691, 1.05),
    15 => array('Минск', '+375(44) 794-19-17', 92, 1),
    16 => array('Алматы', '+7 (727) 350-61-00', 95, 1.1),
    17 => array('Крым', '+7 (800) 350-08-74', 1002, 1.1),
    18 => array('Благовещенск', '+7 (383) 235-97-97', 999, 1.32),
    19 => array('Биробиджан', '+7 (383) 235-97-97', 999, 1.32),
    20 => array('Якутск', '+7 (383) 235-97-97', 999, 1.32),
    21 => array('Хабаровск', '+7 (383) 235-97-97', 999, 1.37),
    22 => array('Комсомольск-на-Амуре', '+7 (383) 235-97-97', 999, 1.37),
    23 => array('Южно-Сахалинск', '+7 (383) 235-97-97', 999, 1.37),
    24 => array('Петропавловск-Камчатский', '+7 (383) 235-97-97', 999, 1.37),
    25 => array('Магадан', '+7 (383) 235-97-97', 999, 1.37),
    26 => array('Владивосток', '+7 (383) 235-97-97', 999, 1.37),
    27 => array('Находка', '+7 (383) 235-97-97', 999, 1.37),
    28 => array('Уссурийск', '+7 (383) 235-97-97', 999, 1.37),
    29 => array('Тюмень', '+7 (3452) 39-65-53', 999, 1.1),
    30 => array('Сургут', '+7 (3452) 39-65-53', 999, 1.15),
    31 => array('Мурманск', '+7 (812) 603-70-74', 999, 1.1),
    32 => array('Архангельск', '+7 (812) 603-70-74', 999, 1.1),
    33 => array('Сыктывкар', '+7 (812) 603-70-74', 999, 1.1),
    34 => array('Махачкала', '+7 (863) 333-52-96', 999, 1.15)
);

if(!empty($_SESSION['select_city'])){
    $city = $arrSesCity[$_SESSION['select_city'[0];
} else if($arrCity[$regionId]){
    $city = $arrCity[$regionId];
} else {
    $city = 'Москва';
}

if(!empty($_SESSION['select_city'])){
    $price = $arrSesCity[$_SESSION['select_city'[3];
} else if($arrPrice[$regionId]){
    $price = $arrPrice[$regionId];
} else {
    $price = 1;
}

if(!empty($_SESSION['select_city'])){
    $phone = $arrSesCity[$_SESSION['select_city'[1];
} else if($arrPhones[$regionId]){
    $phone = $arrPhones[$regionId];
} else {
    $phone = '+7 (495) 128-11-33';
}

if($type == 'city') {
    echo $city;
} else if($type == 'phone') {
    echo $phone;
}
 else if($type == 'check2') {
    if (!($_SESSION['select_city_first_modal'])) {
        echo 1;
        $_SESSION['select_city_first_modal']=1;
    }
}
 else if($type =='check') {
    if (!($_SESSION['select_city'])) {
        switch ($city) {
            case 'Москва':
                $_SESSION['select_city']=1;
                break;
            case 'Санкт-Петербург':
                $_SESSION['select_city']=2;
                break;
            case 'Владимир':
                $_SESSION['select_city']=3;
                break;
            case 'Екатеринбург':
                $_SESSION['select_city']=4;
                break;
            case 'Калуга':
                $_SESSION['select_city']=5;
                break;
            case 'Новосибирск':
                $_SESSION['select_city']=6;
                break;
            case 'Уфа':
                $_SESSION['select_city']=7;
                break;
            case 'Ростов-на-Дону':
                $_SESSION['select_city']=8;
                break;
            case 'Краснодар':
                $_SESSION['select_city']=9;
                break;
            case 'Ставрополь':
                $_SESSION['select_city']=10;
                break;
            case 'Воронеж':
                $_SESSION['select_city']=11;
                break;
            case 'Ульяновск':
                $_SESSION['select_city']=12;
                break;
            case 'Казань':
                $_SESSION['select_city']=13;
                break;
            case 'Самара':
                $_SESSION['select_city']=14;
                break;
            case 'Минск':
                $_SESSION['select_city']=15;
                break;
            case 'Алматы':
                $_SESSION['select_city']=16;
                break;
            case 'Крым':
                $_SESSION['select_city']=17;
                break;
            case 'Благовещенск':
                $_SESSION['select_city']=18;
                break;
            case 'Биробиджан':
                $_SESSION['select_city']=19;
                break;
            case 'Якутск':
                $_SESSION['select_city']=20;
                break;
            case 'Хабаровск':
                $_SESSION['select_city']=21;
                break;
            case 'Комсомольск-на-Амуре':
                $_SESSION['select_city']=22;
                break;
            case 'Южно-Сахалинск':
                $_SESSION['select_city']=23;
                break;
            case 'Петропавловск-Камчатский':
                $_SESSION['select_city']=24;
                break;
            case 'Магадан':
                $_SESSION['select_city']=25;
                break;
            case 'Владивосток':
                $_SESSION['select_city']=26;
                break;
            case 'Находка':
                $_SESSION['select_city']=27;
                break;
            case 'Уссурийск':
                $_SESSION['select_city']=28;
                break;
            case 'Тюмень':
                $_SESSION['select_city']=29;
                break;
            case 'Сургут':
                $_SESSION['select_city']=30;
                break;
            case 'Мурманск':
                $_SESSION['select_city']=31;
                break;
            case 'Архангельск':
                $_SESSION['select_city']=32;
                break;
            case 'Сыктывкар':
                $_SESSION['select_city']=33;
                break;
            case 'Махачкала':
                $_SESSION['select_city']=34;
                break;
        }
    }
}
else if($type == 'test') {
    echo $regionId.'   '.$regionName;
}
else if($type == 'price') {
    echo $price;
} else if($type == 'phoneF') {
    
    $f = preg_replace ("/[^0-9+]/","",$phone);
    
    echo $f;
} else if($type == 'id') {
    if(!empty($_SESSION['select_city']) && !empty($arrSesCity[$_SESSION['select_city'[2])){
        echo ($arrSesCity[$_SESSION['select_city'[2]);
    } else {
        echo '26';
    }
}


JS обработчик:
setCity = function (id) {
         
            var city_name = $('#block-views-cities-block').find('.act-select-city[data-id=' + id + ']').attr('data-city-name');            

            localStorage.setItem('city_id', id);
            $.cookie('city_id', id, { expires: 120 });
            localStorage.setItem('city_name', city_name);
            localStorage.setItem('city_phone', city_phone);
            setPhoneToHtml();
            deferReload();
            window.location.reload();
            
            
        };