Szerkesztő:BáthoryPéter/poziciosTerkepNagyito.js
Megjegyzés: közzététel után frissítened kell a böngésződ gyorsítótárát, hogy lásd a változásokat.
- Firefox / Safari: tartsd lenyomva a Shift gombot és kattints a Frissítés gombra a címsorban, vagy használd a Ctrl–F5 vagy Ctrl–R (Macen ⌘–R) billentyűkombinációt
- Google Chrome: használd a Ctrl–Shift–R (Macen ⌘–Shift–R) billentyűkombinációt
- Internet Explorer / Edge: tartsd nyomva a Ctrl-t, és kattints a Frissítés gombra, vagy nyomj Ctrl–F5-öt
- Opera: Nyomj Ctrl–F5-öt
////////////////////////////////////////
//
//
// A script része a Common.js-nek, ez az eredeti csak archiválási célból maradt meg, ne használd
//
////////////////////////////////////////
//<source lang="JavaScript">
function poziciosTerkepInit() {
var boxes = getElementsByClassName(document, "poziciosTerkepDoboz");
for (var i=0; i<boxes.length; ++i){
try{
var inner = getElementsByClassName(boxes[i], "poziciosTerkepBelso")[0];
if (inner.getElementsByTagName("img")[0].src.indexOf("/thumb/") == -1) return false;
if ( inner.getElementsByTagName("img")[1] && inner.getElementsByTagName("img")[1].alt == "Háttér"
&& inner.getElementsByTagName("img")[1].src.indexOf("/thumb/") == -1)
return false;
var innerA = inner.getElementsByTagName("a")[0];
innerA.onclick = function() {poziciosTerkepOpen(this); return false;}
innerA.style.cursor = "move";
}catch(e){}/*ha nincs meg, akkor nincs értelme továbbmenni*/
}
}
function getElementsByClassName(node, cl){
if (node.getElementsByClassName)
return node.getElementsByClassName(cl);
var nodes = [];
var elem = node.getElementsByTagName('DIV');
for (var i = 0; i < elem.length; i++) {
if (new RegExp('\\b'+cl+'\\b').test(elem[i].className))
nodes.push(elem[i]);
}
return nodes;
}
function poziciosTerkepOpen(sender) {
//Kicsi pozíciós térkép megkeresése
var outer = sender.parentNode;
while (outer.className != "poziciosTerkepBelso") {
outer = outer.parentNode;
}
//Pozíciós térkép átmásolása
var newDiv = outer.cloneNode(true);
var newImg = new Array();
newImg[0] = newDiv.getElementsByTagName("img")[0];
newImg[0].title = newImg[0].src.match(/\/.\/..\/(.*\.[a-zA-z]{3,4})\/[^\/]*$/)[1];
if (newDiv.getElementsByTagName("img")[1] && newDiv.getElementsByTagName("img")[1].alt == "Háttér"){
newImg[1] = newDiv.getElementsByTagName("img")[1];
newImg[1].title = newImg[1].src.match(/\/.\/..\/(.*\.[a-zA-z]{3,4})\/[^\/]*$/)[1];
}
//A kép eredeti méreteinek lekérdezése
for(var i=0; i<newImg.length; ++i){
if (newImg[i].title.match(/\.[a-zA-z]{3,4}$/) != ".svg") {
var poziciosTerkepAjax = sajax_init_object();
if ( ! poziciosTerkepAjax ) return false;
var url = mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php' + "?action=query&format=xml&titles=Image:"+newImg[i].title+"&prop=imageinfo&iiprop=size";
poziciosTerkepAjax.onreadystatechange = function () {
if (poziciosTerkepAjax.readyState != 4)
return false;
var res = poziciosTerkepAjax.responseText;
var imgWidth = res.match(/width=\"([0-9]*)\"/)[1];
var imgHeight = res.match(/height=\"([0-9]*)\"/)[1];
if (poziciosTerkepKesz && imgWidth < newWidth) {
for(var j=0; j<newImg.length; ++j){
newImg[j].width = imgWidth;
newImg[j].height= imgHeight;
newImg[j].src = newImg[j].src.replace(/thumb/, "").replace(/\/[0-9]*px-.*\.[a-zA-z]{3,4}$/, "");
newDiv.style.width = imgWidth+"px";
}
}
};
poziciosTerkepAjax.open('GET', url, true);
poziciosTerkepAjax.send(null);
}
}
//Méretek meghatározása
var oldWidth = outer.clientWidth;
var oldHeight = outer.clientHeight;
var newWidth = Math.round(document.getElementsByTagName("html")[0].clientWidth * 0.90 );
var newHeight = Math.round(document.getElementsByTagName("html")[0].clientHeight * 0.95 );
if (oldHeight/oldWidth*newWidth > newHeight){
newWidth = Math.round(oldWidth/oldHeight*newHeight);
}else{
newHeight = Math.round(oldHeight/oldWidth*newWidth);
}
for(var i=0; i<newImg.length; ++i){
newImg[i].width=newWidth;
newImg[i].height=newHeight;
newImg[i].src = newImg[i].src.replace(new RegExp(oldWidth+"px\-", "g"), newWidth+"px-");
newImg[i].parentNode.style.cursor = "hand";
}
newDiv.getElementsByTagName("span")[0].style.cssText =
"padding: 1px;font-size:12pt;text-shadow: 0px 0px 4px white;-moz-text-shadow: 0px 0px 4px white;";
newDiv.id="poziciosTerkepNagyitott";
newDiv.style.cssText =
"width: "+newWidth+"px; position: absolute; background-color:white; z-index:102;"
+"top: "+ Math.round(((window.innerHeight || document.getElementsByTagName("html")[0].clientHeight)
-newHeight)/2 + document.documentElement.scrollTop)+"px;"
+"left: "+ Math.round(((window.innerWidth || document.getElementsByTagName("html")[0].clientWidth)
-newWidth) /2) +"px;"
+"border:solid 1px black;box-shadow:0px 0px 20px #C0C0C0; border-radius: 3px;"
+"-moz-box-shadow:0px 0px 20px #C0C0C0; -moz-border-radius: 3px;";
var closeButton = document.createElement("div");
closeButton.style.cssText = "position:absolute;text-align:right;width:100%;";
closeButton.innerHTML = "<img style='padding:4px;z-index:103;' onclick='poziciosTerkepClose()' "
+"src='http://upload.wikimedia.org/wikipedia/commons/d/d4/Button_hide.png' />";
newDiv.insertBefore(closeButton, newDiv.firstChild);
//Kirakjuk
var bodyContent = document.body;//getElementById("bodyContent");
bodyContent.insertBefore(newDiv, bodyContent.firstChild);
var poziciosTerkepKesz = true;
//Háttér elsötétítése
document.body.style.height = "auto";
var scrollHeight = document.body.scrollHeight || document.body.offsetHeight;
document.body.style.height = "100%";
var opacityDiv = document.createElement("div");
opacityDiv.id="poziciosTerkepOpacity";
opacityDiv.onclick = function() {poziciosTerkepClose();};
opacityDiv.style.cssText =
"position:absolute; top:0; background:black; opacity:0.3; filter:alpha(opacity=70);"+
"width:100%; height:"+(scrollHeight+20)+"px;z-index:101";
document.body.appendChild(opacityDiv);
}
function poziciosTerkepClose() {
document.body.removeChild(document.getElementById("poziciosTerkepNagyitott"));
document.body.removeChild(document.getElementById("poziciosTerkepOpacity"));
}
$(function() {
poziciosTerkepInit();
});
//</source>