MediaWiki:Common.js/coordinates.js
Заўвага: каб пабачыць зьмены пасьля публікацыі, Вам можа спатрэбіцца ачысьціць кэш Вашага браўзэра.
- Firefox / Safari: трымайце Shift і націсьніце Reload, ці націсьніце Ctrl-F5 ці Ctrl-R (⌘-R на Mac)
- Google Chrome: націсьніце Ctrl-Shift-R (⌘-Shift-R на Mac)
- Internet Explorer / Edge: трымайце Ctrl і націсьніце Refresh, ці націсьніце Ctrl-F5
- Opera: націсьніце Ctrl-F5.
/*
* Скрыпт для дадаваньня рамкі з спасылкамі на Google Maps і OSM каля
* блёку з каардынатамі ў верхнім правым куце старонкі.
*
* Аўтар: [[Удзельнік:Zedlik]]
* Пры наяўнасьці пытаньняў можна зьвяртацца ў [[Вікіпэдыя:Форум]] або
* да [[Удзельнік:Zedlik]].
*/
var cursorOverCoordinatesBox = false;
function addGoogleMapsContainer(parent, id, coordinatesArray) {
var googleMapsMapLink = "http://maps.google.com/maps?ll=" + coordinatesArray[0] + "," + coordinatesArray[1] + "&q=" + coordinatesArray[0] + "," + coordinatesArray[1] + "&t=m&spn=0.03,0.03&hl=be";
var googleMapsSatLink = "http://maps.google.com/maps?ll=" + coordinatesArray[0] + "," + coordinatesArray[1] + "&q=" + coordinatesArray[0] + "," + coordinatesArray[1] + "&t=k&spn=0.03,0.03&hl=be";
var content = "Google Maps: " +
"<a href=\"" + googleMapsMapLink +
"\">мапа</a><span style=\"font-weight:bold;\"> · </span><a href=\"" + googleMapsSatLink +
"\">спадарожнік</a>";
addCoordinateMapContainer(parent, id, content, true);
}
function addOSMContainer(parent, id, coordinatesArray) {
var osmLink = "http://openstreetmap.org/?mlat=" + coordinatesArray[0] + "&mlon=" + coordinatesArray[1] + "&zoom=13";
var content = "OpenStreetMap: " + "<a href=\"" + osmLink + "\">мапа</a>";
addCoordinateMapContainer(parent, id, content, false);
}
function addYandexContainer(parent, id, coordinatesArray) {
var yandexMapLink = "http://maps.yandex.ru/?ll=" + coordinatesArray[1] + "," + coordinatesArray[0] + "&spn=0.03,0.03&l=map&pt=" + coordinatesArray[1] + "," + coordinatesArray[0];
var yandexSatLink = "http://maps.yandex.ru/?ll=" + coordinatesArray[1] + "," + coordinatesArray[0] + "&spn=0.03,0.03&l=sat&pt=" + coordinatesArray[1] + "," + coordinatesArray[0];
var content = "Яндекс: " +
"<a href=\"" + yandexMapLink +
"\">мапа</a><span style=\"font-weight:bold;\"> · </span><a href=\"" + yandexSatLink +
"\">спадарожнік</a>";
addCoordinateMapContainer(parent, id, content, false);
}
function addCoordinateMapContainer(parent, id, content, topElement) {
var gd = document.createElement("div");
gd.id = id;
gd.innerHTML = content;
gd.style.textAlign="left";
gd.style.display="none";
if (topElement) {
gd.style.borderTop = "1px solid #d0d0d0";
gd.style.marginTop = "3px";
gd.style.paddingTop = "3px";
}
else {
gd.style.marginTop = "2px";
}
parent.appendChild(gd);
}
function coordinatesContainerMouseOverHandler() {
cursorOverCoordinatesBox = true;
var coordinates = document.getElementById("coordinates");
coordinates.style.borderTop="1px solid #c0c0c0";
coordinates.style.borderLeft="1px solid #c0c0c0";
coordinates.style.borderRight="1px solid #c0c0c0";
coordinates.style.borderBottom="1px solid #c0c0c0";
coordinates.style.backgroundColor="#f4f4f4";
setShadow(coordinates, "5px 5px 7px #a0a0a0");
var externalMapResource = document.getElementById("coordinatesGoogleMapsLink");
externalMapResource.style.display="block";
var externalMapResource = document.getElementById("coordinatesOSMLink");
externalMapResource.style.display="block";
var externalMapResource = document.getElementById("coordinatesYandexLink");
externalMapResource.style.display="block";
}
function coordinatesContainerMouseOutHandler() {
if (!cursorOverCoordinatesBox) {
var coordinates = document.getElementById("coordinates");
coordinates.style.borderTop="1px solid transparent";
coordinates.style.borderLeft="1px solid transparent";
coordinates.style.borderRight="1px solid transparent";
coordinates.style.borderBottom="1px solid transparent";
coordinates.style.backgroundColor="";
setShadow(coordinates, "none");
var externalMapResource = document.getElementById("coordinatesGoogleMapsLink");
externalMapResource.style.display="none";
var externalMapResource = document.getElementById("coordinatesOSMLink");
externalMapResource.style.display="none";
var externalMapResource = document.getElementById("coordinatesYandexLink");
externalMapResource.style.display="none";
}
}
function initiateCoordinatesBoxHide() {
cursorOverCoordinatesBox = false;
setTimeout(coordinatesContainerMouseOutHandler, 300);
}
function setShadow(box, value) {
if ('mozBoxShadow' in box.style) {
box.style.mozBoxShadow = value;
}
else if ('webkitBoxShadow' in box.style) {
box.style.webkitBoxShadow = value;
}
else if ('boxShadow' in box.style) {
box.style.boxShadow = value;
}
}
function getGeoCoordinatesArray() {
var coordinates = ["", ""];
var geo = $( 'span.geo' );
if (geo.length > 1) {
if (geo[1]) {
var coords = "";
if (geo[1].textContent) {
coords = geo[1].textContent;
}
else if (geo[1].innerText) {
coords = geo[1].innerText;
}
if (coords) {
var coordinatesArray = coords.split("; ");
coordinates[0] = coordinatesArray[0];
coordinates[1] = coordinatesArray[1];
}
}
}
return coordinates;
}
$(function setCoordinates()
{
var coordinates = document.getElementById("coordinates");
if (coordinates) {
var coordinatesArray = getGeoCoordinatesArray();
addGoogleMapsContainer(coordinates, "coordinatesGoogleMapsLink", coordinatesArray);
addOSMContainer(coordinates, "coordinatesOSMLink", coordinatesArray);
addYandexContainer(coordinates, "coordinatesYandexLink", coordinatesArray);
coordinates.style.paddingTop="6px";
coordinates.style.paddingBottom="6px";
coordinates.style.paddingLeft="10px";
coordinates.style.paddingRight="10px";
coordinates.style.marginTop="-7px";
coordinates.style.marginRight="-11px";
coordinates.style.borderTop="1px solid transparent";
coordinates.style.borderLeft="1px solid transparent";
coordinates.style.borderRight="1px solid transparent";
coordinates.style.borderBottom="1px solid transparent";
coordinates.onmouseover = coordinatesContainerMouseOverHandler;
coordinates.onmouseout = initiateCoordinatesBoxHide;
}
});