function page_js(targ,frame,frame1,frame2) { var page=this; if(targ=="about") {(function(){ page.unset=function(){ frame.off(); unloadPlugin(parallax); }; page.resize=function(){ parallax.reinitialise(); }; page.cursorMove=function(){ parallax.move(mouse_pos); }; var parallax = frame.find('.p_item').parallaxInit({ transitions_av: transitions_av, mouse_pos: mouse_pos }); setTimeout(function() { frame2.find('.architecture__triangles').removeClass('inactive'); }, 1000); frame .on('click', '.toggle-full', function() { var that = $(this); that.toggleClass('active'); if(that.hasClass('active')) { that/*.text(translate('close'))*/.parents('.quoted-text').addClass('opened'); } else { that/*.removeClass('active').text(translate('more'))*/.parents('.quoted-text').removeClass('opened'); } // // if(targ_class == 'more-button toggle-full') { // targ.addClass('active') // changeBg(centrer1.find('.load_frame'),'/assets/images/bg/', page + '2', 800); // body_size.find('.active-show, .inactive-show').addClass('hidden'); // } else // if(targ_class == 'more-button toggle-full active') { // targ.removeClass('active').text(translate('more')).parents('.quoted-text').removeClass('opened'); // changeBg(centrer1.find('.load_frame'),'/assets/images/bg/', page, 800); // body_size.find('.active-show, .inactive-show').removeClass('hidden'); // } }) .on('click', '.open_video', function() { // console.log('123'); frame2.openPopup({ template: 'video', targ: $(this).data('targ'), beforeOpen: function(popup) { popup_video = popup.popupVideoInit({ }); }, noShow: true, afterClose: function (popup) { popup_video=unloadPlugin(popup_video); } }) }); }())} if(targ=="advantages") {(function(){ page.unset=function(){ frame.off(); unloadPlugin(scroll_controller); }; var flats_popup = frame.find('.about__advantages-content-frame'); var keyframes=[0, 1], help = true; var css_moving_elements = new init_css_moving_elements({ elements: frame.find('.about__advantages-col'), keyframes: keyframes, elements_positions: { 'n0':[ { pos: 0, css: { 'top' : '-15em' } },{ pos: 1, css: { 'top' : '-135em' } } ], 'n1':[ { pos: 0, css: { 'top' : '-105em' } },{ pos: 1, css: { 'top' : '-15em' } } ] } }); var scroll_controller=new init_scroll_controller({ magnet: false, magnet_delta: 0.1, scroll_speed: 0.06, //keyframes: keyframes, start_position: keyframes[0], events_area: frame.find('.about___advantages-scroll'), animation_callback_before: function(pos) { }, animation_callback_after: function(pos) { }, animation_time: 1000, onMove: function(pos) { // console.log(pos); css_moving_elements.move(pos); frame.find('.about__advantages-scroll-arrow') .filter('.top').toggleClass('hidden', pos == 0).end() .filter('.bottom').toggleClass('hidden', pos == 1); }, onScroll: function(event) { if(help) { help = false; frame.find('.about__advantages-help-frame').transitionHide(800); } } }); setTimeout(function() { help = false; frame.find('.about__advantages-help-frame').transitionHide(800); }, 2000); function load_advantages_flats(url, show) { $.ajax({ url : '/advantages_flats_load?url=' + url, success: function(response) { if(show) { flats_popup.find('.about__advantages-content-load').html(response).end().addClass('active'); flats_popup.find('.wait-load').on('load', function() { $(this).parents('.about__advantages-content').addClass('active'); }); } else { flats_popup.find('.about__advantages-content-load').append(response); flats_popup.find('.about__advantages-content').last().find('.wait-load').on('load', function() { $(this).parents('.about__advantages-content').addClass('active').delay(800).queue(function(next) { $(this).prevAll().remove(); next(); }); }); } content_move(); pjax.loadPage(url, {'suppress_load' : true}); } }) } frame .on('mouseenter', '.about__advantages-col.n1', function() { scroll_controller.setScrollDirection(-1); }) .on('mouseleave', '.about__advantages-col.n1', function() { scroll_controller.setScrollDirection(1); }) .on('click', '.about__advantages-item.active', function() { load_advantages_flats($(this).data('targ'), true); }) .on('click', '.about__advantages-close', function() { frame.find('.about__advantages-content-frame, .about__advantages-content').removeClass('active'); pjax.loadPage('/about/advantages', {'suppress_load' : true}); }) .on('click', '.about__advantages-arrow', function() { var url = frame.find('.about__advantages-content').last().data('url'), items = frame.find('.about__advantages-item.active'), dir = $(this).data('targ'); var active_item = items.filter('[data-targ="' + url + '"]'); var index = items.index(active_item); index += dir; if(index < 0) index = items.length - 1; if(index > items.length - 1) index = 0; load_advantages_flats(items.eq(index).data('targ'), false); }) .on('click', '.about__advantages-scroll-arrow', function() { scroll_controller.move({target : $(this).data('targ')}); }); }())} if(targ=="around") {(function(){ page.unset=function(){ frame.off(); unloadPlugin(parallax); }; page.resize=function(){ parallax.reinitialise(); }; page.cursorMove=function(){ parallax.move(mouse_pos); }; var parallax = frame.find('.p_item').parallaxInit({ transitions_av: transitions_av, mouse_pos: mouse_pos }); setTimeout(function() { frame2.find('.around__triangles').removeClass('inactive'); }, 1000); if(window.google) { var obj_point = new google.maps.LatLng(59.943217, 30.187983), center_point = new google.maps.LatLng(59.941582, 30.242357), metro_point = new google.maps.LatLng(59.945168, 30.193498); var myOptions = { zoom: 13, center: center_point, mapTypeId: google.maps.MapTypeId.ROADMAP, disableDefaultUI: true, styles: gmaps_styles }; var map = new google.maps.Map(frame.find('.map_place')[0], myOptions); var obj_marker = new gmapsMarker({ map: map, position: obj_point }); var metro_marker = new gmapsMarker({ map: map, position: metro_point, icon: new google.maps.MarkerImage( '/assets/i/sprite.png', new google.maps.Size(50, 50), new google.maps.Point(269, 332), new google.maps.Point(25, 25) ) }); var overlay = new gmapsOverlay({ map: map }); var zsd_coords = [new google.maps.LatLng(59.893501, 30.245619), new google.maps.LatLng(59.893802, 30.243559), new google.maps.LatLng(59.894405, 30.240126), new google.maps.LatLng(59.895051, 30.236521), new google.maps.LatLng(59.896127, 30.232916), new google.maps.LatLng(59.896816, 30.230169), new google.maps.LatLng(59.897935, 30.226736), new google.maps.LatLng(59.898753, 30.224075), new google.maps.LatLng(59.899442, 30.221758), new google.maps.LatLng(59.900173, 30.219183), new google.maps.LatLng(59.901120, 30.216436), new google.maps.LatLng(59.902369, 30.213089), new google.maps.LatLng(59.904219, 30.209827), new google.maps.LatLng(59.906156, 30.207338), new google.maps.LatLng(59.907792, 30.205793), new google.maps.LatLng(59.909857, 30.206394), new google.maps.LatLng(59.912955, 30.208883), new google.maps.LatLng(59.915623, 30.210085), new google.maps.LatLng(59.918161, 30.210342), new google.maps.LatLng(59.922635, 30.211287), new google.maps.LatLng(59.925388, 30.211287), new google.maps.LatLng(59.928657, 30.211115), new google.maps.LatLng(59.931022, 30.210857), new google.maps.LatLng(59.933860, 30.210772), new google.maps.LatLng(59.935967, 30.209827), new google.maps.LatLng(59.939407, 30.207167), new google.maps.LatLng(59.942073, 30.204935), new google.maps.LatLng(59.944136, 30.203390), new google.maps.LatLng(59.946028, 30.203047), new google.maps.LatLng(59.947962, 30.203476), new google.maps.LatLng(59.950412, 30.204763), new google.maps.LatLng(59.953205, 30.206480), new google.maps.LatLng(59.956729, 30.208626), new google.maps.LatLng(59.958491, 30.210171), new google.maps.LatLng(59.959866, 30.211372), new google.maps.LatLng(59.960425, 30.212746), new google.maps.LatLng(59.961241, 30.214891), new google.maps.LatLng(59.962358, 30.215836), new google.maps.LatLng(59.964549, 30.216866), new google.maps.LatLng(59.968716, 30.217552), new google.maps.LatLng(59.970692, 30.217381), new google.maps.LatLng(59.972023, 30.216436), new google.maps.LatLng(59.973570, 30.216093), new google.maps.LatLng(59.974858, 30.216608), new google.maps.LatLng(59.976533, 30.217209), new google.maps.LatLng(59.977392, 30.217981), new google.maps.LatLng(59.978809, 30.219784), new google.maps.LatLng(59.979668, 30.221844), new google.maps.LatLng(59.980484, 30.224161), new google.maps.LatLng(59.980784, 30.226307), new google.maps.LatLng(59.981429, 30.227938), new google.maps.LatLng(59.982116, 30.228796), new google.maps.LatLng(59.984091, 30.229912), new google.maps.LatLng(59.985035, 30.230169)]; var zsd = new google.maps.Polyline({ path: zsd_coords, geodesic: true, strokeColor: '#2ED79E', strokeOpacity: 0, strokeWeight: 8, icons: [{ icon: { path: 'M -1,0 1,0', strokeOpacity: 1, strokeWeight: 2, strokeColor: '#E4D7B6', scale: 1 }, offset: '0', repeat: '6px' }], map: map }); } }())} if(targ=="construction-video") {(function(){ page.unset=function(){ frame.off(); unloadPlugin(carousel); unloadPlugin(parallax); }; page.resize=function(){ parallax.reinitialise(); }; page.cursorMove=function(){ parallax.move(mouse_pos); }; var parallax = frame.find('.p_item').parallaxInit({ transitions_av: transitions_av, mouse_pos: mouse_pos }); var carousel = frame2.find('.carousel_frame').carouselInit({ visible: 3, easing: easyInOut }); var popup_video; frame .on('click', '.open_video', function() { frame2.openPopup({ template: 'video', targ: $(this).data('targ'), beforeOpen: function(popup) { popup_video = popup.popupVideoInit({ }); }, noShow: true, afterClose: function (popup) { popup_video=unloadPlugin(popup_video); } }); }); }())} if(targ=="construction") {(function(){ page.unset=function(){ frame.off(); unloadPlugin(carousel); unloadPlugin(parallax); }; page.resize=function(){ parallax.reinitialise(); }; page.cursorMove=function(){ parallax.move(mouse_pos); }; var parallax = frame.find('.p_item').parallaxInit({ transitions_av: transitions_av, mouse_pos: mouse_pos }); var carousel = frame2.find('.carousel_frame').carouselInit({ visible: 3, easing: easyInOut }); var popup_video; function open_construction_popup(el) { if(el.length) { var id = el.data('id'); var url = el.data('url'); $.ajax({ url: '/ajax/construction_load', dataType: 'json', data: { id: id }, success: function (response) { open_popup_gallery({ images: response.images, frame: frame2, //zoom: 3, default_url: '/construction', beforeOpen: function(popup) { popup.find('> .div_100').append(''); // console.log(response.title, response.description); } }); // pjax.loadPage(url, {'suppress_load': true}); } }); } } open_construction_popup(frame.find('.default_active')); frame .on('click', '.construction__item', function() { open_construction_popup($(this)); }) .on('click', '.construction__item-description', function() { var description = $(this).find('.construction__item-description-content').html(); frame .find('.construction__content') .find('.construction__description-content').html(description).end() .addClass('description'); }) .on('click', '.construction__description-close', function() { frame.find('.construction__content').removeClass('description'); }) .on('click', '.open_video', function() { frame2.openPopup({ template: 'video', targ: $(this).data('targ'), beforeOpen: function(popup) { popup_video = popup.popupVideoInit({ }); }, noShow: true, afterClose: function (popup) { popup_video=unloadPlugin(popup_video); } }); }) .on('click', '.gallery__description-button', function() { if(!$(this).hasClass('active')) { $(this).addClass('active') .parent().find('.gallery__description').transitionToggleHeight(true, 500); } else { $(this).removeClass('active') .parent().find('.gallery__description').transitionToggleHeight(false, 500); } }); }())} if(targ=="contacts") {(function(){ page.unset=function(){ frame.off(); unloadPlugin(parallax); }; page.resize=function(){ parallax.reinitialise(); }; page.cursorMove=function(){ parallax.move(mouse_pos); }; var parallax = frame.find('.p_item').parallaxInit({ transitions_av: transitions_av, mouse_pos: mouse_pos }); function load_contacts_map(active_point) { if(window.google) { var off_point0 = new google.maps.LatLng(59.931920,30.350171); var off_point1 = new google.maps.LatLng(59.935128, 30.354216); var off_point2 = new google.maps.LatLng(37.449788, -122.160259); var off_point3 = new google.maps.LatLng(46.206594, 6.145527); var off_point4 = new google.maps.LatLng(59.949187, 30.195330); var points = [off_point0, off_point1, off_point2, off_point3, off_point4]; var myOptions = { zoom: 15, center: points[active_point], mapTypeId: google.maps.MapTypeId.ROADMAP, disableDefaultUI: true, zoomControl: true, zoomControlOptions: { style: google.maps.ZoomControlStyle.LARGE, position: google.maps.ControlPosition.RIGHT_CENTER }, styles: gmaps_styles }; var map = new google.maps.Map(frame.find('.map_place')[0], myOptions); var obj_marker = new gmapsMarker({ map: map, position: points[active_point] }); } } frame .on('click', '.contacts__point', function() { frame.find('.contacts__map').transitionShow(500); load_contacts_map($(this).data('targ')); }) .on('click', '.contacts__map-close', function() { frame.find('.contacts__map').transitionHide(500, function() { $(this).find('.map_place').empty(); }); }); }())} if(targ=="developer") {(function(){ page.unset=function(){ frame.off(); unloadPlugin(parallax); }; page.resize=function(){ parallax.reinitialise(); }; page.cursorMove=function(){ parallax.move(mouse_pos); }; var parallax = frame.find('.p_item').parallaxInit({ transitions_av: transitions_av, mouse_pos: mouse_pos }); }())} if(targ=="documents") {(function(){ page.unset=function(current, next){ frame.off(); hf_color(false); unloadPlugin(parallax); }; page.resize=function(){ parallax.reinitialise(); }; page.cursorMove=function(){ parallax.move(mouse_pos); }; hf_color(true); var parallax = frame.find('.p_item').parallaxInit({ transitions_av: transitions_av, mouse_pos: mouse_pos }); }())} if(targ=="favorites") {(function(){ page.unset=function(){ frame.off(); unloadPlugin(param_search); }; /*if(search_page_prev) { frame2.append(''); }*/ var param_search; test_json('living', function() { var filtered_data = {}; for(var i = 0, l = favourites.length; i < l; i ++) { filtered_data[favourites[i]] = data.living.apartments[favourites[i]]; } param_search = frame2.searchInit({ data: filtered_data, resultClick: function (id, e) { if(e.target.className == 'fav-del-btn') { removeFavourite(id); delete filtered_data[id]; param_search.updateData(filtered_data); frame.find('.search_preview_frame').hide(); } else { param_search_url = pjax.getPathname(); var d = data.living.apartments[id]; pjax.loadPage('/plans/korpus' + d.b + '/section' + d.s + '/floor' + d.f + '/flat' + d.n); } }, rules: { 'fav_del' : function(val) { return ''; }, 'img': function(val,id) { return ''; } }, notfound_text: 'Пока у вас нет избранных квартир
Перейти к выбору квартиры', htmlNoLoad: true }); }); }())} if(targ=="gallery-album") {(function(){ page.unset=function(){ frame.off(); unloadPlugin(gallery); }; var gallery_frame = frame.find('.gallery_place'); var gallery = gallery_frame.galleryInit({ images: gallery_images, start_num: start_num, previews: true, dots: false, previews_num: 1, vertical: false, zoom: 2, loadComplete: function() { frame1.find('.wait-load').remove(); } }); }())} if(targ=="gallery") {(function(){ page.unset=function(){ frame.off(); unloadPlugin(parallax); }; page.resize=function(){ parallax.reinitialise(); }; page.cursorMove=function(){ // parallax.move(mouse_pos); }; var parallax = frame.find('.p_item').parallaxInit({ transitions_av: transitions_av, mouse_pos: mouse_pos }); var albums = frame.find('.gallery__carousel-item'); var albums_l = albums.length; function get_album_num(num) { if(num > albums_l - 1) num = 0; if(num < 0) num = albums_l - 1; return num; } frame .on('click', '.gallery__carousel-arrow', function() { var active_album = albums.filter('.active'); var active = albums.index(active_album), prev, next; console.log(active + $(this).data('targ')); active = get_album_num(active + $(this).data('targ')); prev = get_album_num(active - 1); next = get_album_num(active + 1); console.log(prev, active, next); albums.removeClass('prev active next') .eq(active).addClass('active').end() .eq(prev).addClass('prev').end() .eq(next).addClass('next'); }); }())} if(targ=="home") {(function(){ page.unset=function(){ frame.off(); unloadPlugin(parallax); unloadPlugin(slideshow); }; page.resize=function(){ parallax.reinitialise(); }; page.cursorMove=function(){ parallax.move(mouse_pos); }; var parallax = frame.find('.p_item').parallaxInit({ transitions_av: transitions_av, mouse_pos: mouse_pos }); var offers = frame.find('.home__offer-content'); var slideshow = frame1.slideshowInit({ slides: ['home.jpg', 'home_n.jpg'], path: '/assets/images/bg/', prefix: '', interval: 6000, time: 2500, beforeChange: function (img, cur_number, old_number, direction) { img.css({'opacity': 0, 'translate3d': 0}); if(offers.length > 1) { var active = offers.filter('.active'); var active_index = active.index(offers); var new_index = active_index < offers.length - 1 ? active_index + 1 : 0; active.removeClass('active'); offers.eq(new_index).addClass('active'); } }, finishCSS: {'opacity': 1} }); setTimeout(function() { frame2.find('.home__offer-triangles').removeClass('inactive'); }, 1000); }())} if(targ=="infrastructure-map") {(function(){ page.unset=function(){ frame.off(); unloadPlugin(parallax); }; page.resize=function(){ parallax.reinitialise(); }; page.cursorMove=function(){ parallax.move(mouse_pos); }; var parallax = frame.find('.p_item').parallaxInit({ transitions_av: transitions_av, mouse_pos: mouse_pos }); function get_icon_style(type) { return 'background-position: -' + (2 + type * 57) + 'px -2px'; } function get_cluster_style() { return [{ fontFamily: "Arial", fontWeight: 'normal', textSize: 17, textColor: '#bfac58', width: 46, height: 40, anchorText: [-4, 0], url: '/assets/i/cluster.png' }]; } test_json('infrastructure', function() { if(window.google) { var groups='all'; /* groups, all, false */ var obj_point = new google.maps.LatLng(59.943217, 30.187983), center_point = new google.maps.LatLng(59.942460,30.215878), metro_point = new google.maps.LatLng(59.945168, 30.193498); var myOptions = { zoom: 15, center: center_point, mapTypeId: google.maps.MapTypeId.ROADMAP, disableDefaultUI: true, zoomControl: true, zoomControlOptions: { style: google.maps.ZoomControlStyle.LARGE, position: google.maps.ControlPosition.RIGHT_CENTER }, styles: gmaps_styles, maxZoom: 18, minZoom: 5 }; var map = new google.maps.Map(frame.find('.map_place')[0], myOptions); // // var metro_marker = new gmapsMarker({ // map: map, // position: metro_point, // icon: new google.maps.MarkerImage( // '/assets/i/sprite.png', // new google.maps.Size(50, 50), // new google.maps.Point(269, 332), // new google.maps.Point(25, 50) // ) // }); var overlay = new gmapsOverlay({ map: map }); var zsd_coords = [new google.maps.LatLng(59.893501, 30.245619), new google.maps.LatLng(59.893802, 30.243559), new google.maps.LatLng(59.894405, 30.240126), new google.maps.LatLng(59.895051, 30.236521), new google.maps.LatLng(59.896127, 30.232916), new google.maps.LatLng(59.896816, 30.230169), new google.maps.LatLng(59.897935, 30.226736), new google.maps.LatLng(59.898753, 30.224075), new google.maps.LatLng(59.899442, 30.221758), new google.maps.LatLng(59.900173, 30.219183), new google.maps.LatLng(59.901120, 30.216436), new google.maps.LatLng(59.902369, 30.213089), new google.maps.LatLng(59.904219, 30.209827), new google.maps.LatLng(59.906156, 30.207338), new google.maps.LatLng(59.907792, 30.205793), new google.maps.LatLng(59.909857, 30.206394), new google.maps.LatLng(59.912955, 30.208883), new google.maps.LatLng(59.915623, 30.210085), new google.maps.LatLng(59.918161, 30.210342), new google.maps.LatLng(59.922635, 30.211287), new google.maps.LatLng(59.925388, 30.211287), new google.maps.LatLng(59.928657, 30.211115), new google.maps.LatLng(59.931022, 30.210857), new google.maps.LatLng(59.933860, 30.210772), new google.maps.LatLng(59.935967, 30.209827), new google.maps.LatLng(59.939407, 30.207167), new google.maps.LatLng(59.942073, 30.204935), new google.maps.LatLng(59.944136, 30.203390), new google.maps.LatLng(59.946028, 30.203047), new google.maps.LatLng(59.947962, 30.203476), new google.maps.LatLng(59.950412, 30.204763), new google.maps.LatLng(59.953205, 30.206480), new google.maps.LatLng(59.956729, 30.208626), new google.maps.LatLng(59.958491, 30.210171), new google.maps.LatLng(59.959866, 30.211372), new google.maps.LatLng(59.960425, 30.212746), new google.maps.LatLng(59.961241, 30.214891), new google.maps.LatLng(59.962358, 30.215836), new google.maps.LatLng(59.964549, 30.216866), new google.maps.LatLng(59.968716, 30.217552), new google.maps.LatLng(59.970692, 30.217381), new google.maps.LatLng(59.972023, 30.216436), new google.maps.LatLng(59.973570, 30.216093), new google.maps.LatLng(59.974858, 30.216608), new google.maps.LatLng(59.976533, 30.217209), new google.maps.LatLng(59.977392, 30.217981), new google.maps.LatLng(59.978809, 30.219784), new google.maps.LatLng(59.979668, 30.221844), new google.maps.LatLng(59.980484, 30.224161), new google.maps.LatLng(59.980784, 30.226307), new google.maps.LatLng(59.981429, 30.227938), new google.maps.LatLng(59.982116, 30.228796), new google.maps.LatLng(59.984091, 30.229912), new google.maps.LatLng(59.985035, 30.230169)]; var zsd = new google.maps.Polyline({ path: zsd_coords, geodesic: true, strokeColor: '#2ED79E', strokeOpacity: 0, strokeWeight: 8, icons: [{ icon: { path: 'M -1,0 1,0', strokeOpacity: 1, strokeWeight: 2, strokeColor: '#E4D7B6', scale: 1 }, offset: '0', repeat: '6px' }], map: map }); var markers = []; var clusters; var bounds = new google.maps.LatLngBounds(); $.each(data.infrastructure, function(i,group){ $.each(group.points, function(i2,point){ var marker = new MarkerWithLabel({ position: new google.maps.LatLng(point.position[0], point.position[1]), title: point.title, map: map, icon: new google.maps.MarkerImage( '/assets/i/blank.gif', new google.maps.Size(54, 54), new google.maps.Point(0, 0), new google.maps.Point(27, 27) ), type: group.id, id: point.id, labelContent: '
' + point.title + '
', labelClass: 'gmaps_labels', labelVisible: true }); markers.push(marker); bounds.extend(marker.getPosition()); google.maps.event.addListener(marker, 'mouseover', function() { this.setOptions({labelClass: 'gmaps_labels hover', zIndex: 10000}); }); google.maps.event.addListener(marker, 'mouseout', function() { this.setOptions({labelClass: 'gmaps_labels', zIndex: null}); }); }) }); var obj_marker = new gmapsMarker({ map: map, position: obj_point }); if (groups == 'groups') { clusters = {}; var markers_by_type={}; $.each(markers, function (index, value) { var type=value.type; if(!markers_by_type[type]) { markers_by_type[type]=[]; } markers_by_type[type].push(value); }); $.each(markers_by_type, function (index, value) { var cluster = new MarkerClusterer(map, value, {styles: get_cluster_style(), ignoreHidden: true, gridSize: 20}); clusters[index] = cluster; }); } else if (groups == 'all') { clusters = {}; var cluster = new MarkerClusterer(map, markers, {styles: get_cluster_style(), ignoreHidden: true, gridSize: 20}); clusters[0] = cluster; } function toggle_markers(show) { var bounds = new google.maps.LatLngBounds(); bounds.extend(obj_marker.getPosition()); for(var i = 0, length = markers.length; i < length; i ++) { var type = markers[i].type; var visible=frame.find('.infrastructure__group.n' + type).hasClass('active') && show; markers[i].setVisible(visible); if(visible) { bounds.extend(markers[i].getPosition()); } } if (clusters) { $.each(clusters, function (i,v) { v.repaint(); }) } if(show) { map.fitBounds(bounds); } } frame .on('click', '.infrastructure__group', function() { if($(this).hasClass('active')) { if($(this).siblings('.active').length) { $(this).siblings().removeClass('active'); } else { $(this).siblings().addClass('active'); } } else { $(this).addClass('active').siblings().removeClass('active'); } toggle_markers(true); }); } }); }())} if(targ=="installment") {(function(){ page.unset=function(){ frame.off(); unloadPlugin(parallax); }; page.resize=function(){ parallax.reinitialise(); }; page.cursorMove=function(){ parallax.move(mouse_pos); }; var parallax = frame.find('.p_item').parallaxInit({ transitions_av: transitions_av, mouse_pos: mouse_pos }); frame .on('click', '.mortgage__menu-item', function() { if(!$(this).hasClass('active')) { $(this).setActive(); frame.find('.mortgage__content-item[data-targ="' + $(this).data('targ') + '"]').setActive(); } }); }())} if(targ=="korpus") {(function(){ page.unset=function(){ frame.off(); plans_current_values.n=null; hf_color(false); }; page.resize=function(){ plan_check_size(); }; page.cursorMove=function(){ floor_popup.css({'top' : mouse_pos.pageY * mobile_scale, 'left' : mouse_pos.pageX * mobile_scale}).toggleClass('bottom', frame_h / mouse_pos.pageY > 2); }; var svg_paper_bg, svg_minimap; var floor_popup = frame.find('.floor_popup'); plans_current_values.slug = frame.find('.plans_info').data('slug'); plans_current_values.b = Number(frame.find('.plans_info').data('korpus')); plans_current_values.sect_sel = frame.find('.korp_det.n1'); plans_current_values.floor_sel = frame.find('.korp_det.n2'); plans_current_values.apart_details = frame.find('.apart_details_frame'); frame.find('.korp_det.n0 .korp_det_val>div').text(plans_current_values.b); frame.find('.plans__prices-frame.b' + plans_current_values.b).setActive(); test_json('living', function() { load_minimap(); if (frame.hasClass('opened_floor') || frame.hasClass('opened_apart')) { hf_color(true); frame.find('.floor_frame, .blur_bg').transitionShow(0); plans_current_values.s = Number(frame.find('.plans_info').data('section')); plans_current_values.f = Number(frame.find('.plans_info').data('floor')); if (frame.hasClass('opened_floor')) { load_floor(0, true); } else if (frame.hasClass('opened_apart')) { plans_current_values.n = plans_current_values.b+'-'+frame.find('.plans_info').data('flat'); load_floor_details(); load_apart_details(plans_current_values.n); load_apart(plans_current_values.n, 0, true); } } param_search_url=null; var svg_paper_bg_frame=frame.find('.plans_map_cont'); svg_paper_bg = svg_paper_bg_frame.area2svg({ /*'masked-img': frame.find('.wait-load').attr('src').replace('.jpg','_.jpg'), 'masked-show-all': false,*/ 'fill': '#ffe570', 'fill-opacity': 0, 'width': 1920, 'height': 1080, click: function (el) { if(/k/.test(el.alt)) { if(el.data('active')) { var b = el.alt.replace('k', ''); pjax.loadPage('/plans/korpus' + b); } } else if (el.at) { console.log(el.alt); plans_current_values.s = Number(el.alt.split('-')[0]); plans_current_values.f = Number(el.alt.split('-')[1]); floor_frame_show(); floor_popup.removeClass('active'); } }, mouseover: function (el) { if(/k/.test(el.alt)) { var b = el.alt.replace('k', ''); frame.find('.korpus_popup[data-targ="' + b + '"]').addClass('hover').trigger('mouseenter'); } else if (el.at) { el.bottom.stop().animate(200).attr({'fill-opacity':0.38}); var d = data.living.floors[plans_current_values.b + '-' + el.alt]; var arc_txt = ''; $.each(d.arc, function(k,v) { if(v) { arc_txt += '

' + (k != '0' ? k + '-комн. - ' : 'ст. - ') + v + '

'; } }); var temp = Math.floor(Math.random() * 40) + 1; floor_popup.addClass('visible') .find('.n1 .val').text(el.alt.split('-')[0]).end() .find('.n2 .val').text(el.alt.split('-')[1]).end() .find('.n3>div').html('' + el.at + 'квартир' + word_end(el.at) + '
' + arc_txt + '
'); } }, mouseout: function (el) { if(/k/.test(el.alt)) { var b = el.alt.replace('k', ''); frame.find('.korpus_popup[data-targ="' + b + '"]').removeClass('hover').trigger('mouseleave'); } else if (el.at) { el.bottom.stop().animate(200).attr({'fill-opacity':0}); floor_popup.removeClass('visible'); } } }); test_floors(data.living.floors); }); function floor_frame_show() { frame.find('.floor_frame').transitionShow(700); frame.find('.blur_bg').transitionShow(400); load_floor(0); plan_check_size(); } function floor_frame_hide() { frame.find('.floor_frame').transitionHide(400); frame.find('.blur_bg').transitionHide(700); change_url('korpus'); plans_current_values.n=null; frame.removeClass('opened_floor opened_apart').addClass('closed_floor'); hf_color(false); } function load_floor(time, no_history, directions) { plans_current_values.n=null; frame.find('.plans_close').data('targ', null); load_floor_details(); frame.find('.plan_frame.n0 .plan_frame_centrer_position').transitionStop(true).transition(get_floor_css(directions,0,1), time, function() { load_floor_map($(this),time,directions); }); if (!no_history) { change_url('floor'); } } function load_floor_details() { if (!data.living.floors[plans_current_values.b+'-'+plans_current_values.s+'-'+plans_current_values.f]) { plans_current_values.f = get_exist_floor(plans_current_values.f, -1); } if (data.living.floors[plans_current_values.b+'-'+plans_current_values.s+'-'+plans_current_values.f].at==0) { plans_current_values.f = get_closest_floor(plans_current_values.f, -1); } test_next_btn(plans_current_values.sect_sel.find('.sect_left'), get_closest_section(plans_current_values.s, -1)); test_next_btn(plans_current_values.sect_sel.find('.sect_right'), get_closest_section(plans_current_values.s, 1)); test_next_btn(plans_current_values.floor_sel.find('.floor_down'), get_closest_floor(plans_current_values.f, -1)); test_next_btn(plans_current_values.floor_sel.find('.floor_up'), get_closest_floor(plans_current_values.f, 1)); plans_current_values.sect_sel.find('.val').text(plans_current_values.s); plans_current_values.floor_sel.find('.val').text(plans_current_values.f); hf_color(true); update_minimap(); } function load_floor_map(fr,time,directions) { var floor_id=plans_current_values.b+'-'+plans_current_values.s+'-'+plans_current_values.f; var current_html=fr.data('targ'); var d1 = $.Deferred(); $.when(d1).done(function() { frame.removeClass('opened_apart closed_floor').addClass('opened_floor'); plans_current_values.apart_details.removeClass('active'); fr.css(get_floor_css(directions,null,-1)).transition(get_floor_css(null,1,0), time); }); if(floor_id==current_html) { d1.resolve(); } else { fr.data('targ',floor_id).load('/hydra/floors/'+floor_id+'.html', function() { var apart_popups_html=''; var av_rooms_list=[]; var av_rooms_html=''; var img=fr.find('.floor_map'); var w=img.attr('width'); var h=img.attr('height'); img.on('load',function() { $(this).off('load'); d1.resolve(); }); fr.find('.floor_map_cont').area2svg({ 'opacity': 0, 'width': w, 'height': h, 'cursor': 'default', click: function (el) { if (el.st==1) { load_apart(el.alt, 0); } }, mouseover: function (el) { if(!plans_current_values.n) { if (el.st==1) { el.bottom.stop().animate(200).attr({'opacity': 1}); fr.find('.apart_popup.n'+el.alt).addClass('hover'); } load_apart_details(el.alt); } }, mouseout: function (el) { if (el.st==1) { el.bottom.stop().animate(200).attr({'opacity': 0.5}); fr.find('.apart_popup.n'+el.alt).removeClass('hover'); } plans_current_values.apart_details.removeClass('active'); }, each: function (el) { var d = data.living.apartments[el.alt]; if (!d || d.st != 1) { if (!d) { d = {}; d.st = 0; console.log('null data at '+el.alt); } el.bottom.attr({'opacity': 0}); if($.inArray(-1,av_rooms_list)==-1) { av_rooms_list.push(-1); } } else { el.bottom.attr({'opacity':0.5,'fill':rc_color(d.rc)}); el.attr({'cursor': 'pointer'}); if($.inArray(d.rc,av_rooms_list)==-1) { av_rooms_list.push(d.rc); } //var box=el.bbox(); // var box = el.getCentroid(); // apart_popups_html+='
'+d.n+'
'; } el.st=d.st; } }); // fr.find('.floor_map').after(apart_popups_html); // apart_popups_html=null; av_rooms_list.sort(); $.each(av_rooms_list,function(index,value){ if(value==-1) { av_rooms_html+='Не в продаже'; } else { av_rooms_html+=''+ (value ? value + '-комн. квартира' : 'студия') + ''; } }); frame.find('.floor_help').html(av_rooms_html) .find('.sale').each(function(){ $(this).find('.rc_help_icon').css({'background-color':rc_color($(this).data('targ'))}); }); av_rooms_html=null; apart_popups_html=null; }); } } function load_apart_details(alt) { var d = data.living.apartments[alt]; plans_current_values.apart_details.addClass('active'); if (d && d.st == 1) { plans_current_values.apart_details.removeClass('not-sale') .find('[data-targ="n"] .val').text(d.n).end() .find('[data-targ="rc"] .val').text(d.rc ? d.rc : 'ст.').end() .find('[data-targ="sq"] .val').html(d.sq).end() .find('[data-targ="tc"] .val').text(d.tc && 0 ? addspace(d.tc) : 'по запросу'); } else { plans_current_values.apart_details.addClass('not-sale'); } } function load_apart_img(img_frame, src, time) { img_frame.transitionStop(true).transition({'opacity':0},time,function(){ img_frame.html('') .find('.apart_img').css({'translate3d':0}).on('load',function() { img_frame.transitionStop(true).transition({'opacity':1},time); $(this).off('load'); frame.removeClass('opened_floor closed_floor').addClass('opened_apart'); }); }) } function load_apart(alt, time, no_history) { plans_current_values.n = alt; load_apart_img(frame.find('.plan_frame.n1 .plan_frame_centrer_position'), '/hydra/apts/'+plans_current_values.n+'.png', time); frame.find('.plans_close').data('targ', param_search_url); if (!no_history) { change_url('flat'); } frame.find('.fav_btn').toggleClass('active', checkFavourite(plans_current_values.n)); } function load_minimap() { svg_minimap = frame.find('.plans_minimap_frame').area2svg({ 'fill': '#cdb95f', 'fill-opacity': 1, 'width': 150, 'height': 150, click: function (el) { var alt = el.alt.split('-'); if(el.at && !el.data('active')) { pjax.loadPage('/plans/korpus' + alt[0] + '/section' + alt[1] + '/floor' + plans_current_values.f); } }, mouseover: function (el) { if(el.at && !el.active) { el.bottom.stop().animate(300).attr({'opacity' : 1}); } }, mouseout: function (el) { if(el.at && !el.active) { el.bottom.stop().animate(300).attr({'opacity' : 0}); } }, each: function(el) { if(data.living.sections[el.alt] && data.living.sections[el.alt].at) { el.attr({'cursor' : 'pointer'}); el.at = 1; } else { el.attr({'cursor' : 'default'}); } } }); } function update_minimap() { svg_minimap.forEach(function(el) { if(el.alt == plans_current_values.b + '-' + plans_current_values.s) { el.attr({'cursor' : 'default'}).bottom.attr({'opacity' : 1}); el.active = 1; } else if(el.at) { el.attr({'cursor' : 'pointer'}).bottom.attr({'opacity' : 0}); el.active = 0; } }); } function rc_color(param) { var colors= { 0:'#f0e2a8', 1:'#e2dbbd', 2:'#c3bfac', 3:'#d0c491', 4:'#d0c389', 5:'#d0b665' }; return colors[param]; } function test_floors(where) { var rooms_av = []; frame.find('.rooms_sel.active').each(function() { rooms_av.push(Number($(this).data('targ'))); }); svg_paper_bg.forEach(function (el) { if(/k/.test(el.alt)) { var b = el.alt.replace('k', ''); var korpus_popup = frame.find('.korpus_popup[data-targ="' + b + '"]'); korpus_popup.html('
' + b + 'корпус
'); el.bottom.stop().animate(200).attr({'opacity': 1}); if(data.living.buildings[b] && data.living.buildings[b].at) { korpus_popup.attr('href', '/plans/korpus' + b); el.attr({'cursor': 'pointer'}).data('active', 1); } else { korpus_popup.addClass('soon'); el.attr({'cursor' : 'default'}).data('active', 0); } } else { var at = 0; var floor_data = where[plans_current_values.b+'-'+el.alt]; if (floor_data) { if (rooms_av.length) { $.each(rooms_av, function (index, value) { at += floor_data.arc[value]; }); } else { at += floor_data.at; } } el.at=at; if (at != 0) { el.bottom.stop().animate(200).attr({'opacity': 1}); el.attr({'cursor': 'pointer'}); } else { el.bottom.stop().animate(200).attr({'opacity': 0}); el.attr({'cursor': 'default'}); } } }); } function plan_check_size() { frame.find('.plan_frame_centrer').each(function(){ var fr = $(this); var fr2 = fr.parent(); var apart_ratio = $(this).data('targ')||1; var fr2_w=fr2.width(); var fr2_h=fr2.height(); var plan_size = Math.min(fr2_w / apart_ratio, fr2_h); fr.css({'width': plan_size * apart_ratio, 'height': plan_size, 'margin-top': 0.5 * (fr2_h-plan_size), 'margin-left':0.5 * (fr2_w-plan_size * apart_ratio)}); }) } function change_url(type) { var url='/plans'; if(type=='korpus') { url+='/' + plans_current_values.slug; } else if(type=='floor') { url+='/' + plans_current_values.slug + '/section'+plans_current_values.s+'/floor'+plans_current_values.f; } else if(type=='flat') { url+='/' + plans_current_values.slug + '/section'+plans_current_values.s+'/floor'+plans_current_values.f+'/flat'+data.living.apartments[plans_current_values.n].n; } pjax.loadPage(url, {'suppress_load': true}); } function get_floor_css(directions,opacity,direction) { var css={}; if(directions) { css=get_transition_css(direction*10*directions[0]+'%',direction*10*directions[1]+'%'); } else if(direction==0) { css=get_transition_css('0%','0%'); } if(opacity!==null) { css.opacity=opacity; } return css; } function test_next_btn(btn,val) { if (val==null) { btn.removeClass('active'); } else { btn.addClass('active').data('targ',val); } } function get_exist_floor(floor,delta) { floor+=delta; if (data.living.floors[plans_current_values.b+'-'+plans_current_values.s+'-'+floor]) { return floor; } else { return get_exist_floor(floor,delta); } } function get_closest_floor(floor,delta) { floor+=delta; if (!data.living.floors[plans_current_values.b+'-'+plans_current_values.s+'-'+floor]) { return null; } else if (data.living.floors[plans_current_values.b+'-'+plans_current_values.s+'-'+floor].at!=0) { return floor; } else { return get_closest_floor(floor,delta) } } function get_closest_section(section,delta) { section+=delta; if (!data.living.sections[plans_current_values.b+'-'+section]) { return null; } else if (data.living.sections[plans_current_values.b+'-'+section].at!=0) { return section; } else { return get_closest_section(section,delta) } } function load_floor_animation(options) { var direction_floor=0; var direction_section=0; if(options.floor!=undefined) { var floor_next=Number(options.floor); if(floor_nextplans_current_values.s) { direction_section=-1 } else { direction_section=1; } plans_current_values.s=section_next; } load_floor(300,null,[direction_floor,direction_section]); } frame .on('click', '.rooms_sel', function() { $(this).toggleClass('active').siblings('.active').removeClass('active'); test_floors(data.living.floors); }) .on('mouseenter', '.korpus_popup', function() { var alt = 'k' + $(this).data('targ'); if (svg_paper_bg && svg_paper_bg.getByAlt(alt)) { svg_paper_bg.getByAlt(alt).each(function(){ this.bottom.stop().animate(200).attr({'fill-opacity': 0.38}); }) } }) .on('mouseleave', '.korpus_popup', function() { var alt = 'k' + $(this).data('targ'); if (svg_paper_bg && svg_paper_bg.getByAlt(alt)) { svg_paper_bg.getByAlt(alt).each(function(){ this.bottom.stop().animate(200).attr({'fill-opacity': 0}); }) } }) .on('click', '.sect_left.active, .sect_right.active', function() { load_floor_animation({ section:$(this).data('targ') }); }) .on('click', '.floor_down.active, .floor_up.active', function() { load_floor_animation({ floor:$(this).data('targ') }); }) .on('click', '.pdf_btn', function() { window.open('/assets/php/pdf.php?id='+plans_current_values.n, '_blank'); }) .on('click', '.plans_close', function() { var targ_search_url=$(this).data('targ'); if(targ_search_url) { pjax.loadPage($(this).data('targ')); } else if(plans_current_values.n) { load_floor(0); } else { floor_frame_hide(); } }); }())} if(targ=="mortgage") {(function(){ page.unset=function(){ frame.off(); unloadPlugin(parallax); }; page.resize=function(){ parallax.reinitialise(); }; page.cursorMove=function(){ parallax.move(mouse_pos); }; var parallax = frame.find('.p_item').parallaxInit({ transitions_av: transitions_av, mouse_pos: mouse_pos }); frame .on('click', '.mortgage__menu-item', function() { if(!$(this).hasClass('active')) { $(this).setActive(); frame.find('.mortgage__content-item[data-targ="' + $(this).data('targ') + '"]').setActive(); } }); }())} if(targ=="news") {(function(){ page.unset=function(){ frame.off(); hf_color(false); }; var news_popup=frame.find('.news__popup'); var news_list=frame.find('.news__scroll'); if(news_popup.hasClass('active')) { news_popup.data('visible', true); var active_news_link = news_list.find('.news__item[href="' + news_popup.data('url') + '"]'); active_news_link.addClass('active'); news_list.data('plugin').scrollToElement(active_news_link); } frame .on('click', '.news__item', function (e) { if (!$(this).hasClass('active')) { var url = $(this).attr('href'); var news_scroll_frame = news_popup.find('.text_scroll'); news_list.find('.news__item[href="'+url+'"]').setActive(); pjax.loadPage(url, {'suppress_load': true}); add_stat(url); $.ajax({ url: '/ajax/news_load', dataType: 'html', data: { url: url }, success: function (response) { if (!news_popup.data('visible')) { news_popup.data('visible', true).addClass('active'); news_scroll_frame.data('plugin').loadHtml(response, 0); } else { news_scroll_frame.data('plugin').loadHtml(response, 300); } } }); } e.preventDefault(); }) .on('click', '.news__popup-close', function () { news_popup.data('visible', false).removeClass('active'); news_list.find('.news__item.active').removeClass('active'); var url = $(this).data('targ'); pjax.loadPage(url, {'suppress_load': true}); add_stat(url); }) .on('click', '.news_img_tmb', function () { var images=$(this).parent().data('images').split(','); var start_num=$.inArray($(this).data('targ'),images); images=images.map(function(item){ return { src: item } }); open_popup_gallery({ images: images, start_num: start_num, frame: frame2 }); }); }())} if(targ=="placement") {(function(){ page.unset=function(){ frame.off(); unloadPlugin(parallax); }; page.resize=function(){ parallax.reinitialise(); }; page.cursorMove=function(){ parallax.move(mouse_pos); }; var parallax = frame.find('.p_item').parallaxInit({ transitions_av: transitions_av, mouse_pos: mouse_pos }); setTimeout(function() { frame2.find('.around__triangles').removeClass('inactive'); }, 1000); if(window.google) { var obj_point = new google.maps.LatLng(59.943217, 30.187983), center_point = new google.maps.LatLng(59.941582, 30.242357), metro_point = new google.maps.LatLng(59.945168, 30.193498); var myOptions = { zoom: 13, center: center_point, mapTypeId: google.maps.MapTypeId.ROADMAP, disableDefaultUI: true, zoomControl: true, zoomControlOptions: { style: google.maps.ZoomControlStyle.LARGE, position: google.maps.ControlPosition.RIGHT_CENTER }, styles: gmaps_styles }; var map = new google.maps.Map(frame.find('.map_place')[0], myOptions); var obj_marker = new gmapsMarker({ map: map, position: obj_point }); var metro_marker = new gmapsMarker({ map: map, position: metro_point, icon: new google.maps.MarkerImage( '/assets/i/sprite.png', new google.maps.Size(50, 50), new google.maps.Point(269, 332), new google.maps.Point(25, 25) ) }); var overlay = new gmapsOverlay({ map: map }); var zsd_coords = [new google.maps.LatLng(59.893501, 30.245619), new google.maps.LatLng(59.893802, 30.243559), new google.maps.LatLng(59.894405, 30.240126), new google.maps.LatLng(59.895051, 30.236521), new google.maps.LatLng(59.896127, 30.232916), new google.maps.LatLng(59.896816, 30.230169), new google.maps.LatLng(59.897935, 30.226736), new google.maps.LatLng(59.898753, 30.224075), new google.maps.LatLng(59.899442, 30.221758), new google.maps.LatLng(59.900173, 30.219183), new google.maps.LatLng(59.901120, 30.216436), new google.maps.LatLng(59.902369, 30.213089), new google.maps.LatLng(59.904219, 30.209827), new google.maps.LatLng(59.906156, 30.207338), new google.maps.LatLng(59.907792, 30.205793), new google.maps.LatLng(59.909857, 30.206394), new google.maps.LatLng(59.912955, 30.208883), new google.maps.LatLng(59.915623, 30.210085), new google.maps.LatLng(59.918161, 30.210342), new google.maps.LatLng(59.922635, 30.211287), new google.maps.LatLng(59.925388, 30.211287), new google.maps.LatLng(59.928657, 30.211115), new google.maps.LatLng(59.931022, 30.210857), new google.maps.LatLng(59.933860, 30.210772), new google.maps.LatLng(59.935967, 30.209827), new google.maps.LatLng(59.939407, 30.207167), new google.maps.LatLng(59.942073, 30.204935), new google.maps.LatLng(59.944136, 30.203390), new google.maps.LatLng(59.946028, 30.203047), new google.maps.LatLng(59.947962, 30.203476), new google.maps.LatLng(59.950412, 30.204763), new google.maps.LatLng(59.953205, 30.206480), new google.maps.LatLng(59.956729, 30.208626), new google.maps.LatLng(59.958491, 30.210171), new google.maps.LatLng(59.959866, 30.211372), new google.maps.LatLng(59.960425, 30.212746), new google.maps.LatLng(59.961241, 30.214891), new google.maps.LatLng(59.962358, 30.215836), new google.maps.LatLng(59.964549, 30.216866), new google.maps.LatLng(59.968716, 30.217552), new google.maps.LatLng(59.970692, 30.217381), new google.maps.LatLng(59.972023, 30.216436), new google.maps.LatLng(59.973570, 30.216093), new google.maps.LatLng(59.974858, 30.216608), new google.maps.LatLng(59.976533, 30.217209), new google.maps.LatLng(59.977392, 30.217981), new google.maps.LatLng(59.978809, 30.219784), new google.maps.LatLng(59.979668, 30.221844), new google.maps.LatLng(59.980484, 30.224161), new google.maps.LatLng(59.980784, 30.226307), new google.maps.LatLng(59.981429, 30.227938), new google.maps.LatLng(59.982116, 30.228796), new google.maps.LatLng(59.984091, 30.229912), new google.maps.LatLng(59.985035, 30.230169)]; var zsd = new google.maps.Polyline({ path: zsd_coords, geodesic: true, strokeColor: '#2ED79E', strokeOpacity: 0, strokeWeight: 8, icons: [{ icon: { path: 'M -1,0 1,0', strokeOpacity: 1, strokeWeight: 2, strokeColor: '#E4D7B6', scale: 1 }, offset: '0', repeat: '6px' }], map: map }); frame.on('click', '.toggle-map', function() { if(!$(this).hasClass('active')) { map.panTo(obj_point); map.setZoom(12); parallax.setOff(); $(this).addClass('active').text(translate('close')).parents('.placement__text').addClass('opened'); frame.find('.active-show, .inactive-show').addClass('hidden'); } else { map.panTo(center_point); map.setZoom(13); parallax.setOn(); $(this).removeClass('active').text('').parents('.placement__text').removeClass('opened'); frame.find('.active-show, .inactive-show').removeClass('hidden'); } }); } }())} if(targ=="plans-search") {(function(){ page.unset=function(){ frame.off(); }; page.resize=function() { plan_check_size(); }; var types = {}, rooms_sel = frame.find('.search_buttons_frame'), rooms_txt = 'Комнат:', plans_list_frame = frame.find('.plans-search__list'), apart_frame = frame.find('.plans-search__apart-frame'), floor_frame = frame.find('.plan_frame_centrer_position'), text_scroll_plugin = frame.find('.plans-search__scroll').data('plugin'); test_json('living', function() { $.each(data.living.apartments, function(k, v) { if(v.st) { v.tc = v.tc || 0; if (!types[v.rc]) { types[v.rc] = {}; } if (!types[v.rc][v.sq]) { types[v.rc][v.sq] = { 'tc': v.tc, // 'sq' : { // 'min' : v.sq, // 'max' : v.sq // }, 'f': { 'cur': v.f, 'min': v.f, 'max': v.f }, 's': v.s, 'b': v.b, 'n': k } } else { types[v.rc][v.sq].tc = Math.min(types[v.rc][v.sq].tc, v.tc); types[v.rc][v.sq].f.min = Math.min(types[v.rc][v.sq].f.min, v.f); types[v.rc][v.sq].f.max = Math.max(types[v.rc][v.sq].f.max, v.f); } } }); var i = 0; $.each(types, function(rc, v) { rooms_txt += '
' + (rc * 1 ? rc : 'ст.') + '
'; i ++; }); rooms_sel.html(rooms_txt); function update_plans_list(time, callback) { var cur_rc = rooms_sel.find('.active').data('targ'), plans_txt = '', i = 0; $.each(types[cur_rc], function(k, v) { plans_txt += '
' + k + ' м2
'; i ++; }); plans_list_frame.transitionStop(true).transition({'opacity' : 0}, time, function() { plans_list_frame.html(plans_txt).transitionStop(true).transition({'opacity' : 1}, time, function() { if(callback) callback(); }); text_scroll_plugin.reinitialise(); text_scroll_plugin.scrollTo(0); load_apart(time); }); } function load_apart(time) { var cur_rc = rooms_sel.find('.active').data('targ'), cur_sq = plans_list_frame.find('.active').data('targ'); var d = types[cur_rc][cur_sq]; apart_frame.siblings('.plans-search__floor-frame').removeClass('visible'); apart_frame.transitionStop(true).transitionHide(time, function() { apart_frame .find('.plans-search__apart-image').html('') .find('img').on('load', function() { apart_frame.transitionStop(true).transitionShow(time); }); apart_frame .find('.plans-search__apart-title').html(cur_sq + ' м2').end() .find('.plans-search__apart-info-item') // .filter('[data-targ="tc"]').find('.val').text('от ' + addspace(d.tc)).end().end() .filter('[data-targ="f"]').find('.val').text('от ' + d.f.min + ' до ' + d.f.max); }); } function load_floor() { var cur_rc = rooms_sel.find('.active').data('targ'), cur_sq = plans_list_frame.find('.active').data('targ'); var d = types[cur_rc][cur_sq]; floor_frame.load('/hydra/floors/' + d.b + '-' + d.s + '-' + d.f.cur + '.html', function() { var img = floor_frame.find('.floor_map'); var w = img.attr('width'); var h = img.attr('height'); var d1 = $.Deferred(); $.when(d1).done(function() { floor_frame.parents('.plans-search__floor-frame').addClass('visible'); }); img.on('load',function() { $(this).off('load'); d1.resolve(); }); floor_frame.find('.floor_map_cont').area2svg({ 'opacity': 0, 'width': w, 'height': h, 'cursor': 'default', click: function (el) { }, mouseover: function (el) { }, mouseout: function (el) { }, each: function (el) { if (el.alt == d.n) { el.bottom.attr({'opacity':0.5,'fill':rc_color(cur_rc)}); } } }); }); } update_plans_list(0); frame .on('click', '.search_buttons', function() { if(!$(this).hasClass('active')) { $(this).setActive(); update_plans_list(300); } }) .on('click', '.plans-search__item', function() { if(!$(this).hasClass('active')) { $(this).setActive(); load_apart(300); } }) .on('click', '.floor_btn', function() { load_floor(); }) .on('click', '.plans-search__floor-close', function() { $(this).parent().removeClass('visible'); }); }); function plan_check_size() { frame.find('.plan_frame_centrer').each(function(){ var fr = $(this); var fr2 = fr.parent(); var apart_ratio = $(this).data('targ')||1; var fr2_w=fr2.width(); var fr2_h=fr2.height(); var plan_size = Math.min(fr2_w / apart_ratio, fr2_h); fr.css({'width': plan_size * apart_ratio, 'height': plan_size, 'margin-top': 0.5 * (fr2_h-plan_size), 'margin-left':0.5 * (fr2_w-plan_size * apart_ratio)}); }) } function rc_color(param) { var colors= { 0:'#f0e2a8', 1:'#e2dbbd', 2:'#c3bfac', 3:'#d0c491', 4:'#d0c389', 5:'#d0b665' }; return colors[param]; } }())} if(targ=="plans") {(function(){ page.unset=function(){ frame.off(); }; var svg_paper_bg; test_json('living', function() { svg_paper_bg = frame.find('.plans_map_cont').area2svg({ 'opacity': 0, 'fill': '#ffe570', 'fill-opacity': 1, 'stroke-opacity': 0, click: function (el,e) { // if (el.at) { pjax.loadPage(frame.find('.plans_point[data-targ="'+el.alt+'"]').attr('href')); // } }, mouseover: function (el) { frame.find('.plans_point[data-targ="'+el.alt+'"]').trigger('mouseenter').addClass('hover'); }, mouseout: function (el) { frame.find('.plans_point[data-targ="'+el.alt+'"]').trigger('mouseleave').removeClass('hover'); }, each: function(el) { if(frame.find('.plans_point[data-targ="'+el.alt+'"]').hasClass('inactive')) { el.attr({'cursor' : 'default'}).bottom.attr({'fill' : '#E4DFC9'}); } } }); }); frame .on('mouseenter', '.plans_point', function() { var alt = $(this).data('targ'); if (svg_paper_bg && svg_paper_bg.getByAlt(alt)) { svg_paper_bg.getByAlt(alt).each(function(){ this.bottom.stop().animate(200).attr({'opacity': 0.55}); }) } }) .on('mouseleave', '.plans_point', function() { var alt = $(this).data('targ'); if (svg_paper_bg && svg_paper_bg.getByAlt(alt)) { svg_paper_bg.getByAlt(alt).each(function(){ this.bottom.stop().animate(200).attr({'opacity': 0}); }) } }); }())} if(targ=="scroll") {(function(){ page.unset=function(){ frame.off(); unloadPlugin(scroll_controller); }; var keyframes=[0, 0.5, 1]; var css_moving_elements=new init_css_moving_elements({ elements: frame.find('.scroll_elements'), keyframes: keyframes, elements_positions: { 'sq':[ { pos: 0, css: { left:'0%', 'margin-top':'-15em' } },{ pos: 1, css: { left:'50%', 'margin-top':'0em' } },{ pos: 2, css: { left:'100%', 'margin-top':'15em' } } ] } }) var scroll_controller=new init_scroll_controller({ magnet: false, magnet_delta: 0.1, scroll_speed: 0.025, //keyframes: keyframes, start_position: keyframes[0], events_area: frame.find('.events_area'), animation_callback_before: function(pos) { }, animation_callback_after: function(pos) { }, animation_time: 1000, onMove: function(pos) { //console.log(pos); css_moving_elements.move(pos); } }); }())} if(targ=="search") {(function(){ page.unset=function(){ frame.off(); unloadPlugin(param_search); }; var search_hash=frame2.find('.search_hash').data('hash'); var search_values={}; var param_search; if(search_hash) { var split_hash=search_hash.split('&'); $.each(split_hash,function(index,value){ var split_value=value.split('='); if(/active/.test(split_value[0])) { search_values[split_value[0]]=split_value[1]; } else if(/-/.test(split_value[1])) { var split_value2=split_value[1].split('-'); search_values[split_value[0]]={}; search_values[split_value[0]].v_l=Number(split_value2[0]); search_values[split_value[0]].v_r=Number(split_value2[1]); } else { var split_value2=split_value[1].split(','); var nameLengths = split_value2.map(function(name) { return Number(name); }); search_values[split_value[0]]=nameLengths; } }); //search_hash=JSON.parse(Base64.decode(search_hash)); //search_values=search_hash; //console.log(split_hash,search_values) } test_json('living', function() { param_search = frame2.searchInit({ data: data.living.apartments, resultClick: function (id) { param_search_url=pjax.getPathname(); var d = data.living.apartments[id]; pjax.loadPage('/plans/korpus' + d.b + '/section' + d.s + '/floor' + d.f + '/flat' + d.n); //window.open('/assets/php/pdf.php?id='+id,'_blank'); }, paramChange:function(val){ var encode_string=''; $.each(val,function(index,value){ encode_string+=index+'='; if(typeof value=='string') { encode_string+=value; } else if($.isPlainObject(value)) { encode_string+=value.v_l+'-'+value.v_r; } else { encode_string+=value.join(); } encode_string+='&'; }); encode_string=encode_string.slice(0,-1); //var encode_string=Base64.encode(JSON.stringify(val)); pjax.loadPage('/plans/search?'+encode_string, {'suppress_load': true}); //console.log(encode_string); }, rules: { 'tc' : function(val) { return /*val ||*/ 'по запросу'; } }, start_values: search_values, preview: true, htmlNoLoad: true }); }); }())} if(targ=="special-offers") {(function(){ page.unset=function(){ frame.off(); unloadPlugin(carousel); }; page.resize=function(){ parallax.reinitialise(); }; page.cursorMove=function(){ parallax.move(mouse_pos); }; var parallax = frame.find('.p_item').parallaxInit({ transitions_av: transitions_av, mouse_pos: mouse_pos }); var items = frame2.find('.carousel_item'); var carousel = frame2.find('.carousel_frame').carouselInit({ visible: 3, easing: easyInOut, afterMove: function(num, start) { items.addClass('inactive') .eq(start).removeClass('inactive') .nextAll(':lt(2)').removeClass('inactive'); } }); frame .on('click', '.toggle-full, .quoted-text__short', function() { var that = $(this); if(that.hasClass('.quoted-text__short')) that = that.siblings('.toggle-full'); that.toggleClass('active'); if(that.hasClass('active')) { that/*.text(translate('close'))*/.parents('.quoted-text').addClass('opened').parent().addClass('active').siblings().addClass('hidden'); frame2.find('.carousel_arrow').addClass('hidden'); pjax.loadPage(that.parents('.carousel_item').data('targ'), {'suppress_load' : true}); } else { that/*.removeClass('active').text(translate('more'))*/.parents('.quoted-text').removeClass('opened').parent().removeClass('active').siblings().removeClass('hidden'); frame2.find('.carousel_arrow').removeClass('hidden'); pjax.loadPage('/special-offers', {'suppress_load' : true}); } }); }())} if(targ=="video") {(function(){ page.unset=function(){ frame.off(); unloadPlugin(carousel); unloadPlugin(parallax); }; page.resize=function(){ parallax.reinitialise(); }; page.cursorMove=function(){ parallax.move(mouse_pos); }; var parallax = frame.find('.p_item').parallaxInit({ transitions_av: transitions_av, mouse_pos: mouse_pos }); var carousel = frame2.find('.carousel_frame').carouselInit({ visible: 3, easing: easyInOut }); var popup_video; frame .on('click', '.open_video', function() { frame2.openPopup({ template: 'video', targ: $(this).data('targ'), beforeOpen: function(popup) { popup_video = popup.popupVideoInit({ }); }, noShow: true, afterClose: function (popup) { popup_video=unloadPlugin(popup_video); } }); }); }())} if(targ=="view") {(function(){ page.unset=function(){ frame.off(); unloadPlugin(gallery); unloadPlugin(parallax); }; page.resize=function(){ parallax.reinitialise(); }; page.cursorMove=function(){ parallax.move(mouse_pos); }; var parallax = frame.find('.p_item').parallaxInit({ transitions_av: transitions_av, mouse_pos: mouse_pos }); var gallery_frame = frame.find('.gallery_place'); var gallery = gallery_frame.galleryInit({ images: gallery_images, start_num: start_num, previews: true, dots: false, previews_num: 1, vertical: false, zoom: 2, loadComplete: function() { frame1.find('.wait-load').remove(); } }); }())} if(targ=="vtour") {(function(){ page.unset=function(){ frame.off(); } /* { номер панорамы: [начальный угол от севера, { точка перехода в панораму: [ath, atv] }, [x на карте, y на карте]] } */ var pano_info={ '00011':[185,{ '00012':[-80, 4.3] }, [36.57, 48.42]], '00012':[205,{ '00011':[123, 7.8], '00013':[-3.5, 10.4] }, [41.61, 45.19]], '00013':[210,{ '00012':[-174, 0.1] }, [47.29, 53.24]] } function set_pano_info(targ) { current_pano=targ; frame.find('.pano_open_btn[data-targ="'+targ+'"]').setActive(); pano_open_btn_view=frame.find('.pano_open_btn.active .pano_open_btn_view'); //$.cookie('pano',targ,{expires: 1, path: '/'}); $.each(pano_info[targ][1],function(i,v){ //console.log(coords); krpano.call('addhotspot(hotspot_'+i+')'); krpano.call('set(hotspot[hotspot_'+i+'].url, /assets/i/sprite.png)'); krpano.call('set(hotspot[hotspot_'+i+'].ath, '+v[0]+')'); krpano.call('set(hotspot[hotspot_'+i+'].atv, '+v[1]+')'); krpano.call('set(hotspot[hotspot_'+i+'].onclick, js(load_pano('+i+')))'); krpano.call('set(hotspot[hotspot_'+i+'].crop, 267|5|55|59)'); krpano.call('set(hotspot[hotspot_'+i+'].onovercrop, 329|5|55|59)'); krpano.call('set(hotspot[hotspot_'+i+'].edge, bottom)'); //console.log('add hotspot '+i); }) frame.find('.pano_map_open_image_frame').css({'left':-(0.01*192*pano_info[targ][2][0])+'em','top':-(0.01*108*pano_info[targ][2][1])+'em'}); } load_pano = function (targ, keepview) { //console.log(targ,krpano) if(!krpano) { current_pano=targ; preloader.show(); frame.find('.pano_content_frame').transitionStop(true).css({'opacity': 0, 'display': 'block'}); frame.find('.pano_place').addClass('off').html('
'); } else { if(pano_info && pano_info[current_pano] && pano_info[current_pano][1] && pano_info[current_pano][1][targ]) { var start_deg='null'; if(pano_info[targ] && pano_info[targ][1] && pano_info[targ][1][current_pano]) { start_deg='view.hlookat='+(pano_info[targ][1][current_pano][0]+180); } var targ_view=pano_info[current_pano][1][targ]; krpano.call('lookto('+targ_view[0]+','+targ_view[1]+',null,tween(easeInOutExpo,0.5),true,false,null);'); setTimeout(function(){ krpano.call('loadpano("/assets/pages/pano/'+targ+'.xml",'+start_deg+',null,OPENBLEND(1, -0.5, 0.3, 5, linear));'); set_pano_info(targ); },600) } else { krpano.call('loadpano("/assets/pages/pano/'+targ+'.xml",null,'+(keepview||'null')+',BLEND(1));'); set_pano_info(targ); } show_element(frame.find('.pano_content_frame')); } } function unload_pano() { preloader.hide(); krpano=null; hide_element(frame.find('.pano_content_frame')); } pano_loaded = function() { preloader.hide(); show_element(frame.find('.pano_content_frame')); frame.find('.pano_place').removeClass('off'); } pano_rotated=function() { var deg=krpano.get('view.hlookat'); //console.log(deg + ' / ' + krpano.get('view.vlookat')); deg=-deg+pano_info[current_pano][0]; rotateWindrose(windrose,deg,0); pano_open_btn_view.css({'rotate':-deg-25+'deg'}); } krpanoReady=function(pano) { krpano=pano; krpano.set('events.onloadcomplete','js(pano_loaded())'); krpano.set('events.onviewchange','js(pano_rotated())'); set_pano_info(current_pano); } var krpano, current_pano, pano_open_btn_view; var windrose=frame.find('.windrose.n1'); rotateWindrose(frame.find('.windrose.n0'),-25,0); var pano_open_btns_html=''; $.each(pano_info,function(i,v){ pano_open_btns_html+='
'+i.slice(3)+'
'; }) frame.find('.pano_points_frame, .pano_map_open_image_frame').append(pano_open_btns_html); pano_open_btns_html=null; //frame.find('.pano_open_btns').dragChildrens(); frame.find('.pano_points_frame .pano_open_btn').sortY(); /*var start_pano=$.cookie('pano'); if(!start_pano || 1) { start_pano='00000'; } load_pano(start_pano);*/ frame /*.on('mousedown', '.pano_place', function() { $(this).css({'cursor': 'url(/assets/i/cur2.cur), move !important'}); }) .on('mouseup', '.pano_place', function() { $(this).css({'cursor': 'url(/assets/i/cur1.cur), move !important'}); })*/ .on('click', '.pano_points_frame .pano_open_btn', function() { if(!$(this).hasClass('active')) { load_pano($(this).data('targ')); } else { show_element(frame.find('.pano_content_frame')); } }) .on('click', '.pano_map_open', function() { hide_element(frame.find('.pano_content_frame')); }) }())} return page; }