266 lines
8.7 KiB
PHP
266 lines
8.7 KiB
PHP
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");?>
|
|
|
|
<?
|
|
require_once ($_SERVER['DOCUMENT_ROOT'] . SITE_TEMPLATE_PATH . '/vendor/php/solution.php');
|
|
|
|
global $APPLICATION, $arRegion;
|
|
$arThemePopup = TSolution::GetFrontParametrsValues(SITE_ID);
|
|
$url = '';
|
|
|
|
if(isset($_GET['url']) && $_GET['url'])
|
|
$url = htmlspecialchars($_GET['url']);?>
|
|
|
|
<div class="form popup popup--regions">
|
|
<div class="wrap">
|
|
<div class="form-header">
|
|
<div class="text">
|
|
<div class="title font_20 color_333"><?=\Bitrix\Main\Localization\Loc::getMessage('CITY_CHECKED');?></div>
|
|
</div>
|
|
</div>
|
|
<?$template = strtolower($arThemePopup["REGIONALITY_VIEW"]);?>
|
|
<?if(strtolower($arThemePopup["REGIONALITY_VIEW"]) == "select"):?>
|
|
<?$template = "popup_regions_small";?>
|
|
<?endif;?>
|
|
<?$APPLICATION->IncludeComponent(
|
|
"aspro:regionality.list." . VENDOR_SOLUTION_NAME,
|
|
$template,
|
|
Array(
|
|
"URL" => $url,
|
|
"POPUP" => "Y",
|
|
"FORM_TYPE" => $arThemePopup["FORM_TYPE"],
|
|
)
|
|
);?>
|
|
|
|
<script type="text/javascript">
|
|
if($('.popup_regions .dropdown').length)
|
|
{
|
|
$(window).resize(function(){
|
|
var _this = $('.popup_regions .dropdown:visible'),
|
|
dropdownOffset = 65,
|
|
positionTop = 0;
|
|
if(_this.length)
|
|
{
|
|
positionTop = _this.closest('.items_block').position().top;
|
|
if(positionTop+_this.find('.wrap .inner-wrap').actual('outerHeight')+dropdownOffset > $('.form.popup > .wrap > div').height())
|
|
_this.addClass('to-top');
|
|
else
|
|
_this.removeClass('to-top');
|
|
}
|
|
})
|
|
}
|
|
|
|
$('.js-region').on('click', function(){
|
|
var _this = $(this),
|
|
positionTop = _this.parent().position().top,
|
|
dropdownOffset = 65;
|
|
|
|
$('.popup_regions .dropdown').fadeOut(100);
|
|
var dropdown = _this.siblings('.dropdown');
|
|
|
|
if(positionTop+dropdown.find('.wrap .inner-wrap').actual('outerHeight')+dropdownOffset > $('.form.popup > .wrap > div').height())
|
|
dropdown.addClass('to-top');
|
|
else
|
|
dropdown.removeClass('to-top');
|
|
|
|
if(dropdown.is(':visible'))
|
|
dropdown.fadeOut(100);
|
|
else
|
|
dropdown.fadeIn(100);
|
|
})
|
|
|
|
/* close search block */
|
|
$("html, body").on('mousedown', function(e){
|
|
e.stopPropagation();
|
|
if(!$(e.target).hasClass('dropdown'))
|
|
$('.popup_regions .dropdown').fadeOut(100);
|
|
});
|
|
$('.items_block').find('*').on('mousedown', function(e){
|
|
e.stopPropagation();
|
|
});
|
|
|
|
if($("#search").length)
|
|
{
|
|
if(arAllcorp3Options['THEME']['REGIONALITY_SEARCH_ROW'] == 'Y')
|
|
{
|
|
$("#search").autocomplete({
|
|
minLength: 2,
|
|
source: function(request, response){
|
|
$.getJSON( arAllcorp3Options['SITE_DIR']+'ajax/city_select.php', {
|
|
term: request.term,
|
|
url: '<?=$url;?>'
|
|
}, response );
|
|
|
|
},
|
|
appendTo : $(".js-autocomplete-block"),
|
|
select: function(event, ui) {
|
|
$.removeCookie('current_region');
|
|
$.cookie('current_region', ui.item.ID, {path: '/',domain: arAllcorp3Options['SITE_ADDRESS']});
|
|
$("#search").val(ui.item.label);
|
|
return false;
|
|
}
|
|
}).data("ui-autocomplete")._renderItem = function(ul, item){
|
|
var region = (item.REGION ? " ("+item.REGION +")" : "");
|
|
return $("<li>")
|
|
.append("<a href='" + item.HREF + "' class='cityLink dark_link font_13' data-id='"+item.ID+"'>" + item.label +region +"</a>")
|
|
.appendTo(ul);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
$("#search").autocomplete({
|
|
minLength: 2,
|
|
source: (typeof arRegions === 'object' ? arRegions : {}),
|
|
appendTo : $(".js-autocomplete-block"),
|
|
select: function(event, ui) {
|
|
$.removeCookie('current_region');
|
|
$.cookie('current_region', ui.item.ID, {path: '/',domain: arAllcorp3Options['SITE_ADDRESS']});
|
|
$("#search").val(ui.item.label);
|
|
return false;
|
|
}
|
|
}).data("ui-autocomplete")._renderItem = function(ul, item){
|
|
var region = (item.REGION ? " ("+item.REGION +")" : "");
|
|
return $("<li>")
|
|
.append("<a href='" + item.HREF + "' class='cityLink dark_link font_13 js-change-region' data-id='"+item.ID+"'>" + item.label +region +"</a>")
|
|
.appendTo(ul);
|
|
}
|
|
}
|
|
}
|
|
|
|
var current_region_item = $('.city .items_block .cities__item.current'),
|
|
current_region_obl = '';
|
|
$('.city .cities__item:not(.current)').each(function(){
|
|
if($(this).data('id') == current_region_item.data('id'))
|
|
$(this).addClass('shown');
|
|
})
|
|
|
|
if($('.popup_regions .parent_block').length)
|
|
{
|
|
$('.popup_regions .parent_block').each(function(){
|
|
var _this = $(this),
|
|
item = '';
|
|
item = _this.find('.cities__item[data-id='+current_region_item.data('id')+']');
|
|
if(item.length)
|
|
{
|
|
item.addClass('current');
|
|
current_region_obl = item.parent();
|
|
current_region_obl.addClass('current shown');
|
|
if(_this.closest('.items_block').find('.js-region').length)
|
|
_this.closest('.items_block').find('.js-region span').text(current_region_obl.find('.current').text());
|
|
}
|
|
})
|
|
}
|
|
if($('.popup_regions .block.regions').length)
|
|
{
|
|
$('.popup_regions .block.regions').each(function(){
|
|
var _this = $(this),
|
|
obl_block = _this.find('.parent_block'),
|
|
item = '';
|
|
if(!obl_block.length)
|
|
{
|
|
if(current_region_obl)
|
|
{
|
|
_this.find('.cities__item[data-id='+current_region_obl.data('id')+']').addClass('current');
|
|
if(_this.find('.js-region').length && current_region_obl)
|
|
_this.find('.js-region span').text(_this.find('.cities__item[data-id='+current_region_obl.data('id')+']').text());
|
|
}
|
|
else
|
|
{
|
|
item = _this.find('.cities__item[data-id='+current_region_item.data('id')+']');
|
|
if(item.length)
|
|
{
|
|
if(_this.find('.js-region').length)
|
|
_this.find('.js-region span').text(item.text());
|
|
item.addClass('current');
|
|
current_region_obl = item.parent();
|
|
current_region_obl.addClass('current shown');
|
|
}
|
|
}
|
|
}
|
|
})
|
|
$('.popup_regions .block.regions .cities__item').on('click', function(){
|
|
var _this = $(this),
|
|
obl_block = _this.parent('.parent_block');
|
|
_this.siblings().removeClass('current');
|
|
_this.addClass('current');
|
|
|
|
if(_this.closest('.block').find('.js-region').length)
|
|
{
|
|
_this.closest('.block').find('.js-region span').text(_this.text());
|
|
_this.closest('.block').find('.dropdown').fadeOut(100);
|
|
}
|
|
|
|
if(obl_block.length)
|
|
{
|
|
$('.city .cities__item').siblings().removeClass('current shown');
|
|
$('.city .cities__item[data-id='+_this.data('id')+']').addClass('current shown');
|
|
}
|
|
else
|
|
{
|
|
if($('.popup_regions .parent_block').length)
|
|
{
|
|
var parent_block = $('.popup_regions .parent_block[data-id='+_this.data('id')+']')
|
|
$('.popup_regions .parent_block').siblings().removeClass('current shown');
|
|
parent_block.addClass('current shown');
|
|
|
|
if(parent_block.find('.cities__item.current').length)
|
|
parent_block.find('.cities__item.current').trigger('click');
|
|
else
|
|
parent_block.find('.cities__item:first-child').trigger('click');
|
|
}
|
|
else
|
|
{
|
|
$('.city .cities__item').siblings().removeClass('current shown');
|
|
$('.city .cities__item[data-id='+_this.data('id')+']').addClass('current shown');
|
|
}
|
|
}
|
|
if(_this.closest('.block').find('.js-region').length)
|
|
{
|
|
$('.city').addClass('with-check');
|
|
$('.city .js-region span').text(BX.message('CITY_CHOISE_TEXT'));
|
|
}
|
|
})
|
|
}
|
|
|
|
$(document).on('click', '.popup_regions .js-change-region', function(e){
|
|
e.preventDefault();
|
|
var _this = $(this);
|
|
|
|
if(_this.closest('.block').find('.js-region').length)
|
|
{
|
|
_this.closest('.block').removeClass('with-check');
|
|
_this.closest('.block').find('.js-region span').text(_this.text());
|
|
_this.closest('.block').find('.dropdown').fadeOut(100);
|
|
}
|
|
|
|
$.removeCookie('current_region');
|
|
|
|
if(arAllcorp3Options['SITE_ADDRESS'].indexOf(',') != '-1')
|
|
{
|
|
var arDomains = arAllcorp3Options['SITE_ADDRESS'].split(',');
|
|
if(arDomains)
|
|
{
|
|
for(var i in arDomains)
|
|
{
|
|
var domain_name = arDomains[i].replace("\n", "");
|
|
domain_name = arDomains[i].replace("'", "");
|
|
$.cookie('current_region', _this.data('id'), {path: '/',domain: domain_name});
|
|
}
|
|
}
|
|
}
|
|
else
|
|
$.cookie('current_region', _this.data('id'), {path: '/',domain: arAllcorp3Options['SITE_ADDRESS']});
|
|
location.href = _this.attr('href');
|
|
})
|
|
|
|
$('.search-page .wrapper .btn-search').on('click', function(){
|
|
var block = $(this).closest('.wrapper').find('#search');
|
|
if(block.length)
|
|
{
|
|
block.trigger('focus');
|
|
block.data('ui-autocomplete').search(block.val());
|
|
}
|
|
})
|
|
</script>
|
|
</div>
|
|
</div>
|