Gay landscaper
Home / gay topics / Gay landscaper
const mapIconView = document.querySelector('.mapView'); if (typeof mapIconView !== undefined && mapIconView != null) { mapIconView.addEventListener('click', initGMap); mapIconView.removeEventListener('click', initGMap); } const mapDivID = document.getElementById('map-canvas'); if (typeof google === 'object' && google.hasOwnProperty('maps')) { // Set the map source.
googleMapOnFormClick().then(() => { setJsMapSR(mapDivID); }); } } window.addEventListener('load', () => { // Get the lazy map div, either by data-id or by ID. const lazyMapDiv = document.querySelector('div[data-id]') const mapDivID = document.getElementById('map-canvas'); // Add a delay to allow the map to load before initializing it.
initGMap(); } }, 500); }); "; $('body').append(cssHideLogo); } else { var cssHideLogo = ""; $('body').append(cssHideLogo); } if (geocodeVisitorsSetting == 1 && geocodingMethod === "IP") { populateSearchFields(); } if($('.googleSuggest').val() == ""){ populateSearchFields(); } var geocodeVisitorsSetting = '0'; var geocodingMethod = 'HTML5'; //check the advanced setting "geocode_visitor_default" if set to 1 will override the "location_value" values to the formatted desire address from the google reverse geocoding response var vlon = ''; var vlat = ''; } function switchPlaceID(placeId,urlGET, formActionUrl) { let request = { placeId: placeId, fields: ['address_components', 'adr_address', 'formatted_address', 'geometry', 'icon', 'name', 'place_id', 'plus_code', 'type'], }; let service = new google.maps.places.PlacesService(document.createElement('div')); service.getDetails(request, function(place, status) { if (status === google.maps.places.PlacesServiceStatus.OK) { let dataArray = []; dataArray.push(place); parseInfoToSearch(dataArray, urlGET, formActionUrl); } else { console.error('Place details request failed with status:', status); } }); } function parseInfoToSearch(results, urlGET, formActionUrl) { var urlSearchParams = new URLSearchParams(urlGET); var parameters = {}; var addressComponentsArray = []; if (results.length > 1) { if(urlSearchParams.get("location_value")?.toLowerCase() === "nebraska" && results.length === 2){ let tempResult = results[0]; results[0] = results[1]; results[1] = tempResult; } for (let i = 0; i < results.length; i++) { if (results[i].types[0] === 'natural_feature' || results[i].types[0] === 'airport' || results[i].types[0] === 'point_of_interest' || results[i].types[0] === 'establishment' || results[i].types[0] === 'political' || results[i].types[0] === 'park') { results.splice(i, 1); } } } var adComLength = results[0].address_components.length; if(results[0].place_id == 'ChIJmQrivHKsQjQR4MIK3c41aj8'){ switchPlaceID('ChIJi73bYWusQjQRgqQGXK260bw',urlGET, formActionUrl); return; } sessionStorage.setItem("google_result",JSON.stringify(results)); var foundPostalType = results[0].types.find(type => postalTypes.includes(type)); var foundCityType = results[0].types.find(type => cityTypes.includes(type)); //loop that will build the array with the address components and will get the short name of country and administrative area level 1 for (var i = 0; i < adComLength; i++) { if (results[0].address_components[i]['types'][0] == "country") { parameters.country_sn = results[0].address_components[i]['short_name']; } if (results[0].address_components[i]['types'][0] == "administrative_area_level_1") { parameters.adm_lvl_1_sn = results[0].address_components[i]['short_name']; } if (results[0].address_components[i]['types'][0] == "administrative_area_level_1") { parameters.stateSearchLN = results[0].address_components[i]['long_name']; } if (results[0].address_components[i]['types'][0] == "administrative_area_level_2") { parameters.county_sn = results[0].address_components[i]['short_name']; } if ($.inArray(results[0].address_components[i]['types'][0], cityTypes) !== -1 && (foundCityType || foundPostalType ) ) { parameters.city = results[0].address_components[i]['long_name']; } if (results[0].address_components[i]['types'][0] == "postal_code" || results[0].address_components[i]['types'][0] == "postal_code_prefix") { parameters.postal_code = results[0].address_components[i]['long_name']; } } parameters.location_type = results[0].types[0]; if (parameters.adm_lvl_1_sn != '') { parameters.stateSearch = parameters.adm_lvl_1_sn; } if (parameters.country_sn == "GB") { delete parameters.adm_lvl_1_sn; } //will check if the response had the bounds parameters //if it had it will add the south west and north east parameters to the new url if (results[0].geometry.hasOwnProperty('bounds') || results[0].geometry.hasOwnProperty('viewport')) { if (results[0].geometry.hasOwnProperty('bounds')) { var boundsResponse = results[0].geometry.bounds; } else { var boundsResponse = results[0].geometry.viewport; } parameters.swlat = boundsResponse.getSouthWest().lat(); parameters.nelat = boundsResponse.getNorthEast().lat(); parameters.swlng = boundsResponse.getSouthWest().lng(); parameters.nelng = boundsResponse.getNorthEast().lng(); //if there were not bounds parameters in the response it will send the parameter fsearch as radius so a radius search will be performed because of lack of info for this location } else { parameters.fsearch = "radius"; } var locationCenterResponse = results[0].geometry.location; parameters.lat = locationCenterResponse.lat(); parameters.lng = locationCenterResponse.lng(); parameters.faddress = results[0].formatted_address; parameters.place_id = results[0].place_id; var formatParameters = $.param(parameters); urlGET = urlGET + "&" + formatParameters; var urlPath = formActionUrl; var redirect = urlPath + "?" + urlGET; //will redirect the page using the new url that has been constructed window.location.href = redirect; } function populateSearchFields() { var prePopulateLocationSetting = '0'; var geolocationMethod = 'HTML5'; //if set to one will get the lat and lng to do reverse geocoding if (prePopulateLocationSetting == 1 && (geolocationMethod === "HTML5" || geolocationMethod === "IP") && (vlat !== '' && vlon !== '' && vlat != undefined && vlon != undefined && vlat != 0 && vlon != 0)) { var visitorLatLng = new google.maps.LatLng(parseFloat(vlat), parseFloat(vlon)); var visitorGeocoder = new google.maps.Geocoder(); var formattedAddress = []; var preFormattedStructure = { "locality": "long_name", "administrative_area_level_2": "long_name", "administrative_area_level_1": "long_name", "country": "long_name" }; visitorGeocoder.geocode({'latLng': visitorLatLng}, function (results, status) { //if the google response of the geocoding was successful it will use that info to build the url for the new search if (status == google.maps.GeocoderStatus.OK) { window.cachedSelectedOption = results; $.each(preFormattedStructure, function (findex, fvalue) { $.each(results[0].address_components, function (rindex, rvalue) { if (rvalue.types[0] == findex) { formattedAddress.push(rvalue.long_name); } }); }); $('.googleSuggest').each(function () { if ($(this).val() == '') { if (formattedAddress.length > 0) { $(this).val(formattedAddress.join(', ')); clearContent($(this)); } } }); } else { $('.googleSuggest').each(function () { $(this).val(''); }); } }); } } function showError(error) { switch (error.code) { case error.PERMISSION_DENIED: $('.fill_location.clicked').popover({ content: 'Your Local browser settings have prevented location targeting', container: 'body' }); $('.fill_location.clicked').popover('toggle'); setTimeout(function () { $('.fill_location.clicked').popover('hide'); $('.fill_location.clicked').removeClass('clicked'); }, 2000); break; case error.POSITION_UNAVAILABLE: break; case error.TIMEOUT: break; case error.UNKNOWN_ERROR: break; } } if (navigator.geolocation) { if ($(".googleSuggest")[0]) { $(document).on('click', '.fill_location', function getCXPosition() { $(this).addClass('clicked'); var startPos; navigator.geolocation.getCurrentPosition(function (position) { startPos = position; vlat = startPos.coords.latitude; vlon = startPos.coords.longitude; $.get("/api/data/html/get/data_widgets/widget_name", { "vlat": vlat, "vlon": vlon, "name": "Website - Save Coordinates Session" }).done(function (data) { }); populateSearchFields(); }, showError); }) } } else { console.log('Geolocation is not supported for this Browser/OS version yet.'); } function getUrlParameter(sParam) { var sPageURL = window.location.search.substring(1); var sURLVariables = sPageURL.split('&'); for (var i = 0; i < sURLVariables.length; i++) { var sParameterName = sURLVariables[i].split('='); if (sParameterName[0] == sParam) { return decodeURIComponent(sParameterName[1]); } } }
Bruce McArthur: Canadian landscaper who hid victims' body parts in plant pots admits murdering eight men
A serial killer who dismembered his victims after meeting them within the largest gay community in Canada has admitted murdering eight men.
Bruce McArthur, 67, pleaded guilty to eight counts of first-degree murder in Toronto after being arrested in connection with several disappearances in the so-called Gay Village area.
Most residents of the neighbourhood, which is nestled in the downtown district of the city, are gay and each year it plays host to one of the largest pride festivals in the world.
The LGBTQ community had long voiced concerns about a potential serial killer by the time police set up a special task force to investigate several suspicious disappearances.
Police had previously played down suggestions there was a serial killer on the loose and did not arrest McArthur until January last year, following the disappearance of Andrew Kinsman.
The 49-year-old was a popular activist and former bartender who vanished the day after the annual gay pride parade, prompting widespread concern for his safety.
Not long after, the remains of seven men were found in large plant pots at the property where McArthur worked and an eighth victim was found in a nearby ravine.
More on Canada
The former landscaper was charged with the murders of Mr Kinsman, Selim Esen, Majeed Kayhan, Dean Lisowick, Soroush Mahmudi, Skandaraj Navaratnam, Abdulbasir Faizi and Kirushna Kanagaratnam.
Most of his victims were of Middle Eastern or South Asian descent, and one of them had hidden the fact that he was gay from his Muslim family.
Their disappearances had attracted little attention until Mr Kinsman vanished, which led to police considering a potential link between them all.
Prosecutor Michael Cantlon told the Superior Court of Justice in Toronto the cases also involved sexual assault or forced confinement, and a number of the men had apparently been strangled.
Before he pleaded guilty, the court heard how McArthur had moved to Toronto in 2000.
He had previously lived in a suburb, where he was married, raised two children and worked as a travelling salesman of underwear and socks.
He later set up a landscaping business, which was small, but he periodically hired workers - including a 40-year-old man who disappeared in 2010.
The guilty pleas came a year before a trial was pencilled in to start in January 2020, and it means his sentencing hearing will now begin on 4 February.
In the meantime, police will continue to investigate cold cases with potential links to McArthur.
Detective David Dickinson told reporters outside court: "It's not ending any time soon."
He added: "We are pleased that McArthur has pleaded guilty, sparing the communities and families a lengthy trial.
This is the best outcome.
The case has drawn comparisons with that of London-based serial killer Stephen Port, who was convicted of murdering four young men whom he poisoned so that he could have sex with them while they were unconscious.
He met his victims on dating websites like Grindr.
.
setTimeout(() => { // Check if the map div exists.if (typeof lazyMapDiv !== "undefined" && lazyMapDiv !== null) { lazyMapDiv.id = lazyMapDiv.dataset.id; let mapIconView = document.querySelector('.mapView'); if (typeof mapIconView !== undefined && mapIconView != null) { mapIconView.addEventListener('click', initGMap); } } else if (typeof mapDivID !== "undefined" || mapDivID !== null) { // Initialize the map.
setJsMapSR(mapDivID); } else { // If the map is not loaded, wait for it to load before setting the source.