Advertisement
Guest User

Untitled

a guest
Feb 27th, 2020
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var hrefBase = '/bg/obiavi';
  2. var foreignSearchKeyword = 'foreign';
  3. var property_type_all = '';
  4. var property_type_buildings_only = '';
  5. property_type_all = property_type_all + '<option value="5" data-disable-floor-ctl="" data-disable-floor-ctl="">Едностаен апартамент</option>';
  6. property_type_all = property_type_all + '<option value="6" data-disable-floor-ctl="" data-disable-floor-ctl="">Двустаен апартамент</option>';
  7. property_type_all = property_type_all + '<option value="9" data-disable-floor-ctl="" data-disable-floor-ctl="">Тристаен апартамент</option>';
  8. property_type_all = property_type_all + '<option value="27" data-disable-floor-ctl="" data-disable-floor-ctl="">Четиристаен апартамент</option>';
  9. property_type_all = property_type_all + '<option value="10" data-disable-floor-ctl="" data-disable-floor-ctl="">Многостаен апартамент</option>';
  10. property_type_all = property_type_all + '<option value="8" data-disable-floor-ctl="" data-disable-floor-ctl="">Мезонет</option>';
  11. property_type_all = property_type_all + '<option value="13" data-disable-floor-ctl="1" data-disable-floor-ctl="1">Ателие,Таван, Студио</option>';
  12. property_type_all = property_type_all + '<option value="11" data-disable-floor-ctl="" data-disable-floor-ctl="">Офис</option>';
  13. property_type_all = property_type_all + '<option value="12" data-disable-floor-ctl="1" data-disable-floor-ctl="1">Стая</option>';
  14. property_type_all = property_type_all + '<option value="20" data-disable-floor-ctl="1" data-disable-floor-ctl="1">Гараж, паркомясто</option>';
  15. property_type_all = property_type_all + '<option value="30" data-disable-floor-ctl="1" data-disable-floor-ctl="1">Сутерен, Мазе, Партер</option>';
  16. property_type_all = property_type_all + '<option value="26" data-disable-floor-ctl="1" data-disable-floor-ctl="1">Сграда</option>';
  17. property_type_buildings_only = property_type_buildings_only + '<option value="26" data-disable-floor-ctl="1" data-disable-floor-ctl="1" selected>Сграда</option>';
  18. property_type_all = property_type_all + '<option value="14" data-disable-floor-ctl="1" data-disable-floor-ctl="1">Къща</option>';
  19. property_type_all = property_type_all + '<option value="15" data-disable-floor-ctl="" data-disable-floor-ctl="">Етаж от къща</option>';
  20. property_type_all = property_type_all + '<option value="25" data-disable-floor-ctl="1" data-disable-floor-ctl="1">Вила</option>';
  21. property_type_all = property_type_all + '<option value="16" data-disable-floor-ctl="1" data-disable-floor-ctl="1">Парцел</option>';
  22. property_type_all = property_type_all + '<option value="33" data-disable-floor-ctl="1" data-disable-floor-ctl="1">Зала</option>';
  23. property_type_all = property_type_all + '<option value="17" data-disable-floor-ctl="1" data-disable-floor-ctl="1">Магазин</option>';
  24. property_type_all = property_type_all + '<option value="32" data-disable-floor-ctl="1" data-disable-floor-ctl="1">Търговски обект</option>';
  25. property_type_all = property_type_all + '<option value="18" data-disable-floor-ctl="1" data-disable-floor-ctl="1">Заведение</option>';
  26. property_type_all = property_type_all + '<option value="23" data-disable-floor-ctl="1" data-disable-floor-ctl="1">Промишлен имот</option>';
  27. property_type_all = property_type_all + '<option value="29" data-disable-floor-ctl="1" data-disable-floor-ctl="1">Бензиностанция</option>';
  28. property_type_all = property_type_all + '<option value="21" data-disable-floor-ctl="1" data-disable-floor-ctl="1">Хотел</option>';
  29. property_type_all = property_type_all + '<option value="19" data-disable-floor-ctl="1" data-disable-floor-ctl="1">Склад</option>';
  30. property_type_all = property_type_all + '<option value="22" data-disable-floor-ctl="1" data-disable-floor-ctl="1">Фабрика</option>';
  31. property_type_all = property_type_all + '<option value="24" data-disable-floor-ctl="1" data-disable-floor-ctl="1">Земеделски имот</option>';
  32. property_type_all = property_type_all + '<option value="28" data-disable-floor-ctl="1" data-disable-floor-ctl="1">Гора</option>';
  33. property_type_all = property_type_all + '<option value="31" data-disable-floor-ctl="1" data-disable-floor-ctl="1">Язовир</option>';
  34. var months_to_target_date = parseInt();
  35. if (!months_to_target_date > 0) {
  36.     months_to_target_date = 36
  37. }
  38. $(document).ready(function() {
  39.     $(document).on('click', '.mini-tabs a', function() {
  40.         $('a.active', $(this).parent()).removeClass('active');
  41.         $(this).addClass('active');
  42.         if ($(this).data('show-buildings-only')) {
  43.             $('#property_type_id').html(property_type_buildings_only);
  44.             $('#property_type_id').cSelectbox('instance').refresh();
  45.             $('#new_buildings').val(1);
  46.             $('#building-type-ctl-wrapper').show();
  47.             $('#building_type_id').cSelectbox('instance').refresh()
  48.         } else if ($('#property_type_id option').length == 1) {
  49.             $('#property_type_id').html(property_type_all);
  50.             $('#property_type_id').cSelectbox('instance').refresh();
  51.             $('#new_buildings').val(0);
  52.             $('#building-type-ctl-wrapper').hide();
  53.             $('#building_type_id option[selected]').prop('selected', !1);
  54.             $('#building_type_id').val('');
  55.             $('#building_type_id').cSelectbox('instance').refresh()
  56.         }
  57.         if ($(this).data('show-target-date')) {
  58.             $('.search-tools-box.features-filtered-box').hide();
  59.             $('#months_to_target_date').cSelectbox('instance').setSelected(months_to_target_date);
  60.             $('#months_to_target_date').cSelectbox('instance').update();
  61.             $('#target-date-ctl-wrapper').show();
  62.             $('#months_to_target_date').cSelectbox('instance').gotoHighlighted()
  63.         } else {
  64.             $('#target-date-ctl-wrapper').hide();
  65.             $('.search-tools-box.features-filtered-box').show();
  66.             $('#months_to_target_date').val('');
  67.             $('#months_to_target_date option[selected]').prop('selected', !1);
  68.             $('#months_to_target_date').cSelectbox('instance').refresh()
  69.         }
  70.     });
  71.     var cityId = 0 + -1;
  72.     var countryId = 0 + 66;
  73.     var waId = cityId;
  74.     if (waId == -1) {
  75.         waId = countryId
  76.     }
  77.     var url = xhr_url + '?' + $.param({
  78.         method: 'get_map_regions_by_wa_id',
  79.         waid: waId
  80.     });
  81.     $.get(url).done(function(json) {
  82.         clearPolygons();
  83.         renderPolygons(json.polygons, json.mapCenter, parseInt(json.zoomLevel))
  84.     });
  85.     $('#world_area_id').cSelectbox("instance").gotoHighlighted()
  86. });
  87. var selectedSubTabName = 'all';
  88. if (selectedSubTabName != 'all') {
  89.     var selectedSubTabObj = $('a[data-tabname="' + selectedSubTabName + '"]');
  90.     setTimeout(function() {
  91.         selectedSubTabObj.trigger("click")
  92.     }, 100)
  93. }
  94. var gmaps_api_key = 'AIzaSyCrrSjAo5YvR40sAG8QKXhBtW5p1sA84Ws';
  95. $('.js-load-map').one('click', function(e) {
  96.     e.preventDefault();
  97.     var mapsScript = document.createElement("script");
  98.     mapsScript.type = "text/javascript";
  99.     mapsScript.src = "https://maps.googleapis.com/maps/api/js?key=" + gmaps_api_key + "&v=3&callback";
  100.     document.head.appendChild(mapsScript);
  101.     mapsScript.onload = function() {
  102.         initMap();
  103.         $('.js-map-overlay').hide();
  104.         var country_id = $("#country_id").find(':selected').val();
  105.         var city_id = $("#world_area_id").find(':selected').val();
  106.         if (city_id) {
  107.             var waId = city_id
  108.         } else {
  109.             var waId = country_id
  110.         }
  111.         var url = xhr_url + '?' + $.param({
  112.             method: 'get_map_regions_by_wa_id',
  113.             waid: waId
  114.         });
  115.         $.get(url).done(function(json) {
  116.             clearPolygons();
  117.             renderPolygons(json.polygons, json.mapCenter, parseInt(json.zoomLevel));
  118.             $('[data-waid]').trigger('change', {
  119.                 trigger: !0
  120.             })
  121.         })
  122.     }
  123. });
  124. var defaultMapCenter = {
  125.     lat: 42.730097,
  126.     lng: 23.2632953
  127. };
  128. var defaultZoomLevel = 13;
  129. var map = null;
  130. var polyCount = 0;
  131. var userDefinedPolygons = {};
  132. var polyDelete = !1;
  133. var mapPolygons = {};
  134. var COLORDEF = {
  135.     "active": {
  136.         "fill": '#b81b6f',
  137.         "stroke": '#b81b6f',
  138.         "strokeOpacity": 1,
  139.         "fillOpacity": 0.5
  140.     },
  141.     "inactive": {
  142.         "fill": '#b81b6f',
  143.         "stroke": '#b81b6f',
  144.         "strokeOpacity": 0.5,
  145.         "fillOpacity": 0.1
  146.     },
  147.     "drawing": {
  148.         "fill": '#b81b6f',
  149.         "stroke": '#b81b6f',
  150.         "strokeOpacity": 1,
  151.         "fillOpacity": 0.5
  152.     },
  153.     "hover": {
  154.         "fill": '#b81b6f',
  155.         "stroke": '#b81b6f',
  156.         "strokeOpacity": 1,
  157.         "fillOpacity": 0.4
  158.     },
  159. };
  160.  
  161. function clearPolygons() {
  162.     for (var i in mapPolygons) {
  163.         if (mapPolygons.hasOwnProperty(i)) {
  164.             mapPolygons[i].setMap(null);
  165.             delete mapPolygons[i]
  166.         }
  167.     }
  168.     mapPolygons = {}
  169. }
  170.  
  171. function renderPolygons($polygons, $center, $zoomLevel) {
  172.     if (undefined === $center) {
  173.         $center = defaultMapCenter
  174.     }
  175.     if (undefined === $zoomLevel) {
  176.         $zoomLevel = defaultZoomLevel
  177.     }
  178.     if (!map) return !0;
  179.     map.setCenter($center);
  180.     map.setZoom($zoomLevel);
  181.     mapPolygons = {};
  182.     for (var j in $polygons) {
  183.         var polygonsArray = new google.maps.MVCArray();
  184.         var bounds = new google.maps.LatLngBounds();
  185.         if ($polygons.hasOwnProperty(j)) {
  186.             var waId = parseInt($polygons[j].waid);
  187.             var geometry = $.parseJSON($polygons[j].geometry);
  188.             var waTitle = $polygons[j].title;
  189.             for (var i in geometry) {
  190.                 if (geometry.hasOwnProperty(i)) {
  191.                     var point = new google.maps.LatLng(geometry[i].y, geometry[i].x);
  192.                     polygonsArray.push(point);
  193.                     bounds.extend(point)
  194.                 }
  195.             }
  196.             mapPolygons[j] = new google.maps.Polygon({
  197.                 map: map,
  198.                 path: polygonsArray,
  199.                 strokeColor: COLORDEF.inactive.stroke,
  200.                 strokeOpacity: COLORDEF.inactive.strokeOpacity,
  201.                 strokeWeight: 2,
  202.                 fillColor: COLORDEF.inactive.fill,
  203.                 fillOpacity: COLORDEF.inactive.fillOpacity,
  204.                 index: waId,
  205.                 selected: !1,
  206.                 waTitle: waTitle,
  207.                 polygonCenter: bounds.getCenter()
  208.             });
  209.             google.maps.event.addDomListener(mapPolygons[j], 'click', function(e) {
  210.                 this.selected = !this.selected;
  211.                 if (!this.selected) {
  212.                     this.setOptions({
  213.                         fillOpacity: COLORDEF.inactive.fillOpacity
  214.                     })
  215.                 } else {
  216.                     this.setOptions({
  217.                         fillOpacity: COLORDEF.active.fillOpacity
  218.                     })
  219.                 }
  220.                 var wa_id = $('input[data-waid="' + this.index + '"]');
  221.                 if (wa_id.length > 0) {
  222.                     wa_id.prop('checked', this.selected).trigger('change');
  223.                     $('#second_descendant_id').cSelectbox("instance").gotoHighlighted()
  224.                 }
  225.             });
  226.             var polygonLabel = waTitle;
  227.             mapPolygons[j].infoBox = new InfoBox({
  228.                 content: '<div class="polybox_cont" data-id="' + mapPolygons[j].index + '" data-index="' + j + '">' + polygonLabel + '</div>',
  229.                 boxStyle: {
  230.                     textAlign: "center",
  231.                     fontSize: "14px",
  232.                     color: "#FFFFFF",
  233.                     background: COLORDEF.active.fill,
  234.                     padding: "5px"
  235.                 },
  236.                 pixelOffset: new google.maps.Size(((polygonLabel.length / 2) * -10), -10),
  237.                 position: mapPolygons[j].polygonCenter,
  238.                 closeBoxURL: "",
  239.                 isHidden: !1,
  240.                 pane: "floatPane",
  241.                 polygon_id: mapPolygons[j].index
  242.             });
  243.             mapPolygons[j].infoBox.addListener("domready", function() {
  244.                 $('.polybox_cont').on('click', function() {
  245.                     var boxParent = mapPolygons[$(this).data('index')];
  246.                     google.maps.event.trigger(boxParent, 'click', boxParent.polygonCenter)
  247.                 })
  248.             });
  249.             google.maps.event.addListener(mapPolygons[j], "mouseover", function(event) {
  250.                 if (this.fillOpacity != COLORDEF.active.fillOpacity) {
  251.                     this.setOptions({
  252.                         fillOpacity: COLORDEF.hover.fillOpacity
  253.                     })
  254.                 }
  255.                 this.infoBox.open(map)
  256.             });
  257.             google.maps.event.addListener(mapPolygons[j], "mouseout", function(event) {
  258.                 if (this.fillOpacity == COLORDEF.hover.fillOpacity) {
  259.                     this.setOptions({
  260.                         fillOpacity: COLORDEF.inactive.fillOpacity
  261.                     })
  262.                 }
  263.                 this.infoBox.close()
  264.             })
  265.         }
  266.     }
  267. }
  268.  
  269. function initMap() {
  270.     if (map != null) {
  271.         return
  272.     } else {
  273.         $.getScript(_public + 'js/google-infobox.js');
  274.         map = new google.maps.Map(document.getElementById('map'), {
  275.             center: defaultMapCenter,
  276.             zoom: defaultZoomLevel,
  277.             scrollwheel: !1,
  278.             mapTypeControl: !1,
  279.             streetViewControl: !1,
  280.             clickableIcons: !1
  281.         });
  282.         var isIE11 = !!(navigator.userAgent.match(/Trident/) && navigator.userAgent.match(/rv[:]11/));
  283.         var mapPin = '{$_public}images/contact-pin.svg';
  284.         if ($('html').hasClass('no-svg') || isIE11 == !0) {
  285.             mapPin = '{$_public}images/contact-pin.png'
  286.         }
  287.         var thisPlace = defaultMapCenter;
  288.         var thisEstatePin = new google.maps.Marker({
  289.             position: thisPlace,
  290.             map: map,
  291.             icon: mapPin
  292.         });
  293.         panorama = map.getStreetView();
  294.         panorama.setPosition(thisPlace);
  295.         panorama.setPov(({
  296.             heading: 265,
  297.             pitch: 0
  298.         }));
  299.         panorama.setVisible(!1)
  300.     }
  301.     $(".icon-draw").on('click', function() {
  302.         disablePolyDelete();
  303.         $('.map-btn').removeClass('active');
  304.         $(this).addClass('active');
  305.         disable();
  306.         for (var i in userDefinedPolygons) {
  307.             if (userDefinedPolygons.hasOwnProperty(i)) {
  308.                 userDefinedPolygons[i].setMap(map)
  309.             }
  310.         }
  311.         for (var i in mapPolygons) {
  312.             if (mapPolygons.hasOwnProperty(i)) {
  313.                 mapPolygons[i].setMap(null)
  314.             }
  315.         }
  316.         google.maps.event.addDomListener(map.getDiv(), 'mousedown', function(e) {
  317.             drawFreeHand()
  318.         })
  319.     });
  320.     $(".icon-draw-clear").on('click', function(e) {
  321.         enablePolyDelete();
  322.         google.maps.event.clearListeners(map.getDiv(), 'mousedown');
  323.         $('.map-btn').removeClass('active');
  324.         $(this).addClass('active');
  325.         disable();
  326.         for (var i in userDefinedPolygons) {
  327.             if (userDefinedPolygons.hasOwnProperty(i)) {
  328.                 userDefinedPolygons[i].setMap(map)
  329.             }
  330.         }
  331.         for (var i in mapPolygons) {
  332.             if (mapPolygons.hasOwnProperty(i)) {
  333.                 mapPolygons[i].setMap(null)
  334.             }
  335.         }
  336.     });
  337.     $('.icon-sector').on('click', function() {
  338.         $('.map-btn').removeClass('active');
  339.         $(this).addClass('active');
  340.         google.maps.event.clearListeners(map.getDiv(), 'mousedown');
  341.         enable();
  342.         disablePolyDelete();
  343.         for (var i in userDefinedPolygons) {
  344.             if (userDefinedPolygons.hasOwnProperty(i)) {
  345.                 userDefinedPolygons[i].setMap(null)
  346.             }
  347.         }
  348.         for (var i in mapPolygons) {
  349.             if (mapPolygons.hasOwnProperty(i)) {
  350.                 mapPolygons[i].setMap(map)
  351.             }
  352.         }
  353.     })
  354. }
  355.  
  356. function disablePolyDelete() {
  357.     polyDelete = !1;
  358.     for (var i in userDefinedPolygons) {
  359.         if (userDefinedPolygons.hasOwnProperty(i)) {
  360.             google.maps.event.clearListeners(userDefinedPolygons[i], "mouseover");
  361.             google.maps.event.clearListeners(userDefinedPolygons[i], "mouseout");
  362.             google.maps.event.clearListeners(userDefinedPolygons[i], "click")
  363.         }
  364.     }
  365. }
  366.  
  367. function enablePolyDelete() {
  368.     polyDelete = !1;
  369.     for (var i in userDefinedPolygons) {
  370.         if (userDefinedPolygons.hasOwnProperty(i)) {
  371.             google.maps.event.addListener(userDefinedPolygons[i], "mouseover", function() {
  372.                 this.setOptions({
  373.                     fillOpacity: "0.2"
  374.                 })
  375.             });
  376.             google.maps.event.addListener(userDefinedPolygons[i], "mouseout", function() {
  377.                 this.setOptions({
  378.                     fillOpacity: "0.5"
  379.                 })
  380.             });
  381.             google.maps.event.addListener(userDefinedPolygons[i], "click", function() {
  382.                 this.setMap(null);
  383.                 delete userDefinedPolygons[this.index]
  384.             })
  385.         }
  386.     }
  387. }
  388.  
  389. function serializePolys() {
  390.     var serialized = '';
  391.     var data = {};
  392.     var poly = {};
  393.     var key = 0;
  394.     var first_key = null;
  395.     for (var i in userDefinedPolygons) {
  396.         if (userDefinedPolygons.hasOwnProperty(i)) {
  397.             if (userDefinedPolygons[i].getMap() == map) {
  398.                 poly[key] = {};
  399.                 var path = userDefinedPolygons[i].getPath().getArray();
  400.                 for (var p in path) {
  401.                     if (path.hasOwnProperty(p)) {
  402.                         if (typeof path[p] == 'undefined') {
  403.                             continue
  404.                         }
  405.                         if (first_key === null) first_key = p;
  406.                         var point = {
  407.                             lat: path[p].lat(),
  408.                             lng: path[p].lng()
  409.                         };
  410.                         if (typeof data[key] == 'undefined') {
  411.                             data[key] = {}
  412.                         }
  413.                         data[key][p] = point
  414.                     }
  415.                 }
  416.                 if (typeof path[first_key] != 'undefined') {
  417.                     data[key][p + 1] = {
  418.                         lat: path[first_key].lat(),
  419.                         lng: path[first_key].lng()
  420.                     }
  421.                 }
  422.             }
  423.         }
  424.         key++
  425.     }
  426. }
  427.  
  428. function drawFreeHand() {
  429.     poly = new google.maps.Polyline({
  430.         map: map,
  431.         clickable: !1,
  432.         strokeColor: COLORDEF.drawing.stroke,
  433.         strokeOpacity: COLORDEF.drawing.strokeOpacity,
  434.         strokeWeight: 2,
  435.         fillColor: COLORDEF.drawing.fill,
  436.         fillOpacity: COLORDEF.drawing.fillOpacity
  437.     });
  438.     var move = google.maps.event.addListener(map, 'mousemove', function(e) {
  439.         poly.getPath().push(e.latLng)
  440.     });
  441.     google.maps.event.addListenerOnce(map, 'mouseup', function(e) {
  442.         google.maps.event.removeListener(move);
  443.         var path = poly.getPath();
  444.         poly.setMap(null);
  445.         poly = new google.maps.Polygon({
  446.             path: path
  447.         });
  448.         var ArrayforPolygontoUse = GDouglasPeucker(poly.getPath().getArray(), 5);
  449.         poly = new google.maps.Polygon({
  450.             path: ArrayforPolygontoUse,
  451.             map: map,
  452.             geodesic: !0,
  453.             strokeColor: COLORDEF.active.stroke,
  454.             strokeOpacity: 1,
  455.             strokeWeight: 2,
  456.             fillColor: COLORDEF.active.fill,
  457.             fillOpacity: COLORDEF.active.fillOpacity,
  458.             index: "poly_" + polyCount
  459.         });
  460.         userDefinedPolygons["poly_" + polyCount] = poly;
  461.         polyCount++
  462.     })
  463. }
  464.  
  465. function disable() {
  466.     map.setOptions({
  467.         draggable: !1,
  468.         zoomControl: !1,
  469.         scrollwheel: !1,
  470.         disableDoubleClickZoom: !1
  471.     })
  472. }
  473.  
  474. function enable() {
  475.     map.setOptions({
  476.         draggable: !0,
  477.         zoomControl: !0,
  478.         scrollwheel: !0,
  479.         disableDoubleClickZoom: !0
  480.     })
  481. }
  482.  
  483. function array_unique(arr) {
  484.     var out = [];
  485.     arr = arr.sort();
  486.     for (var i in arr) {
  487.         if (arr[i - 1] != arr[i]) {
  488.             out.push(arr[i])
  489.         }
  490.     }
  491.     return out
  492. }
  493. $('[data-quarterid]').on('change', function(e, params) {
  494.     if (e.originalEvent || typeof params.trigger !== 'undefined') {
  495.         var i = $(this).data('quarterid');
  496.         if (predefinedPoly.hasOwnProperty(i)) {
  497.             if ($(this).is(':checked')) {
  498.                 predefinedPoly[i].setOptions({
  499.                     fillOpacity: COLORDEF.active.fillOpacity,
  500.                     selected: !0
  501.                 })
  502.             } else {
  503.                 predefinedPoly[i].setOptions({
  504.                     fillOpacity: COLORDEF.inactive.fillOpacity,
  505.                     selected: !1
  506.                 })
  507.             }
  508.         }
  509.     }
  510. });
  511. $(document).on('change', 'input[data-regions]', function() {
  512.     var selectedArray = [];
  513.     var checked = $('input[data-regions]:checked');
  514.     if (checked.length > 0) {
  515.         checked.each(function() {
  516.             var selected = $(this).data('regions');
  517.             $.merge(selectedArray, selected)
  518.         });
  519.         selectedArray = array_unique(selectedArray)
  520.     }
  521.     for (var i in mapPolygons) {
  522.         if (mapPolygons.hasOwnProperty(i)) {
  523.             mapPolygons[i].setOptions({
  524.                 fillOpacity: COLORDEF.inactive.fillOpacity,
  525.                 selected: !1
  526.             })
  527.         }
  528.     }
  529.     for (var i in selectedArray) {
  530.         if (mapPolygons.hasOwnProperty(selectedArray[i])) {
  531.             mapPolygons[selectedArray[i]].setOptions({
  532.                 fillOpacity: COLORDEF.active.fillOpacity,
  533.                 selected: !0
  534.             })
  535.         }
  536.     }
  537. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement