Note: After saving, you have to bypass your browser's cache to see the changes. Internet Explorer: press Ctrl-F5, Mozilla: hold down Shift while clicking Reload (or press Ctrl-Shift-R), Opera/Konqueror: press F5, Safari: hold down Shift + Alt while clicking Reload, Chrome: hold down Shift while clicking Reload.
//{{subst:iusc|User:Spratek11/OSM info.js}};
//importScript('User:Spratek11/OSM info.js');
//##############################################################################

//importScript('User:Spratek11/xxxx.js');
/*13.2.2019: Tento skript využívá šablona https://commons.wikimedia.org/wiki/Template:OSM_info.
instalace: zkopíruj následující řádek do svého User:xxx/common.js
importScript('User:Spratek11/User:Spratek11/OSM info.js');
Skript se spustí při editaci obrázku, pokud je obrázek odkazován na OSM 
přidá se do editačního okna řádek {{OSM_info'|....}}
Pozveřejnění editace se na strance zobrazí ifo o použití v OSM
Pokud obrázek neodkazuje na OSM nic se nestane.
*/

console.log("ca edit ahoj = " + document.getElementById('ca-edit'));
	
var EdityouURL;

//https://www.overpass-api.de/api/interpreter?data=[out:json][timeout:25];node["image"="File:Kříž na ulici Bystrcká.jpg"];out;
var Overpass;
var OverpassObject;
var Overpass_elem = [];
var ApiObject;
//"https://www.overpass-api.de/api/interpreter?data=%5Bout%3Ajson%5D%5Btimeout%3A25%5D%3Bnode%5B%22image%22%3D%22File%3AK%C5%99%C3%AD%C5%BE%20na%20ulici%20Bystrck%C3%A1.jpg%22%5D%3Bout%3B";
var rf = mw.config.get('wgRedirectedFrom');
console.log("wgRedirectedFrom =" + rf);
//https://commons.wikimedia.org/w/api.php?action=query&prop=redirects&titles=File:Kříž_na_poli_mezi_Hustopečemi_a_Starovicemi.jpg
var rpn = mw.config.get('wgRelevantPageName');
console.log("wgRelevantPageName =" + rpn);
var chckredir_api = 'https://commons.wikimedia.org/w/api.php?action=query&prop=redirects&titles='+ rpn+'&format=json';
console.log( ' chckredir_api = ' + chckredir_api);
waitForAPI();
	function waitForAPI(){
		console.log("ApiObject_typeof = " + typeof ApiObject);
$.get(chckredir_api, function(html) {
	
		 ApiObject = html;
		if (typeof ApiObject !== "undefined"){
		
	console.log("ApiObject_typeof = " + typeof ApiObject);
	console.log("ApiObject = " +  ApiObject);
	console.log("ApiObject_el = " +  ApiObject.data);
						for( var pgid in  ApiObject.query.pages) {
						//if( ApiObject.query.pages.hasOwnProperty(key)) {
							var value_api =  ApiObject.query.pages[pgid];
							for (var red in value_api){
								var page_redir = value_api[red];
								console.log("page_redir red  = "+ red +" key "+ page_redir); 
								if (red == "redirects"){
								for (var red_id in page_redir){
									var titul = page_redir[red_id];
									console.log("titul = "+red_id +" key "+ titul); 
								}
						}
							}
							//do something with value;
							//console.log("Value_api hodnota key  = "+ key +" key "+ value_api); 
						//}
					}
					
					
	
	
		}else{setTimeout(waitForAPI, 50);}
	
});
}
		//ověřit zda je stránka přesměrovaná (dodělat)
//info stránky podle pageid
//https://commons.wikimedia.org/w/api.php?action=query&prop=info&pageids=62143430&inprop=url


	$(document).ready(function ahoj(){//document.editform.wpTextbox1.value = document.editform.wpTextbox1.value + htmlObject;
	console.log("kuk");
	if (!document.getElementById) return;
	var y = document.getElementById("editform");
	//console.log("x = " + y );
	if(y===null) return;
	//console.log("mmmmmm-$( '#editForm' ).length =" + $( '#editForm' ).length);	
	var i ;
	var information_template;
	var exist;
	var htmlObject;
	var EdithtmlObject;
	var tit = document.title;
	var pn = mw.config.get( 'wgPageName' ) ;
	console.log("wgPageName =" + pn);
	var rf = mw.config.get('wgRedirectedFrom');
	console.log("wgRedirectedFrom =" + rf);
	console.log("tit = " + tit);
	var pos = tit.indexOf(" – Wikimedia Commons");
	//nevím proč, ale indexOf( v anglické verzi stránek nefunguje hledání wikimedia od konce
	if (pos === -1){
		pos = tit.lastIndexOf("Wikimedia");
		pos = pos - 3;
	}
	var posf = tit.indexOf("File");
	var name_tit = tit.slice(posf,pos);	
	var taginfo_name_tit=name_tit.replace(":"," ");
	taginfo_name_tit=taginfo_name_tit.replace("."," ");
	
	console.log(pos + " -888-" + name_tit);
	console.log(pos + " -999-" + taginfo_name_tit);
	var name_tit_res = encodeURI(name_tit);	
	var taginfo_name_tit_res = encodeURI(taginfo_name_tit);	
	var yourURL = 'https://taginfo.openstreetmap.org/api/4/search/by_value?query=' + taginfo_name_tit_res;
	EdityouURL = 'https://commons.wikimedia.org/w/index.php?title='+ name_tit_res + '&action=edit';
	console.log("youURL = " + yourURL);
	console.log("EdityouURL = " + EdityouURL);

	
	//načte data z taginfo taginfo.openstreetmap.org
	$.get(yourURL, function(html) {
		htmlObject = html;
		console.log(typeof htmlObject + "Hello world!15");
		console.log(htmlObject);
		console.log("html data = " + htmlObject.data);
		
		var images = htmlObject.data;
		for(i = 0; i < images.length; i++) {
			console.log(images[i].value);
			var nazev = images[i].value;
			var n = nazev.localeCompare(name_tit);
			console.log("n = " + n);
			//pokud něco najde složí adresu pro overpass-api.de
			if (n === 0){
				console.log(i + " " +images[i].value +" ,klič = " + images[i].key);
				exist = 1;
				Overpass = "https://www.overpass-api.de/api/interpreter?data=[out:json][timeout:25];node["+'"' + images[i].key +'"' + "=" +'"' + images[i].value +'"' + "];out;";
				
				waitForElement();//čeká na složení adresy
				console.log("Overpass uri  1= " + Overpass);						
				editace();//čeká na odezvu overpass serveru	
	
			} else {
				exist = 0;
				Overpass = 0;
			}				
		}	
	});

	
	console.log("Overpass uri adresa = " + Overpass);
	//funkce přiřadí hodnoty do Overpass_elem
	function waitForElement(){
		if(typeof Overpass !== "undefined"){
			//variable exists, do what you want
				
			$.get(Overpass, function(html) {
				OverpassObject = html;
				//console.log("Overpass uri  2= " + Overpass);
				//console.log("OverpassObject typ  = " + typeof OverpassObject);
				//console.log("OverpassObject  = " + OverpassObject);
				//console.log("OverpassObject data  = " + OverpassObject.elements[0].id);
				//console.log("OverpassObject tags  = " + OverpassObject.elements[0].tags.historic);
				var tagso = OverpassObject.elements[0].tags;
				
					for( key in  OverpassObject) {
						if( OverpassObject.hasOwnProperty(key)) {
							var value =  OverpassObject[key];
							//do something with value;
							console.log("OverpassObject hodnota key  = " + value); 
						}
					}
			
				
				for(var name in OverpassObject.elements){
					var module=OverpassObject.elements[name];
					for( key in module){						 
					
						 console.log(name+"/"+key+":"+module[key]);
						 switch (key){
							case "type":
							Overpass_elem [0] = module[key];							
							console.log("Overpass_elem [type] = " + Overpass_elem [0]);
							break;
							case "id":
							Overpass_elem [1] = module[key];
							console.log("Overpass_elem [id] = " + Overpass_elem [1]);
							break;
							case "lat":
							Overpass_elem [2] = module[key];
							console.log("Overpass_elem [lat] = " + Overpass_elem [2]);
							break;
							case "lon":
							Overpass_elem [3] = module[key];
							console.log("Overpass_elem [lon] = " + Overpass_elem [3]);						
							break;
						 }
				
					}
				}
				
				var ii = 4;
				for( key in tagso) {
					if(tagso.hasOwnProperty(key)) {
						
						var value2 = tagso[key];
						//do something with value;
						console.log("tagso hodnota key  = " + ii + " - " + value2); 
						
						Overpass_elem [ii] = value2;
						ii = ii + 1;
					}
				}			
			});			
		}
		else{
			setTimeout(waitForElement, 50);
		}
	}	
	//funkce sločí odkaz na šablonu
	function editace(){
		 console.log("Editace_Overpass_elem[id] " + Overpass_elem['id']);
		if(typeof Overpass_elem[0] !== "undefined"){
			var t = document.editform.wpTextbox1;
			console.log("editace = " + typeof(t) + " - -"+ t);			
			var $textbox = $( '#wpTextbox1' );
			var txt_edit  = $textbox[0].value ;
			//console.log("index OSM= " + txt_edit.indexOf("OSM_info"));
			var pos_lic = txt_edit.indexOf("=={{int:license-header}}==");
			if (pos_lic == -1){
				pos_lic = txt_edit.indexOf("== {{int:license-header}} ==");				
			}
			
			if (txt_edit.indexOf("OSM_info|")===-1){
				if (pos_lic){ 
					var starttxt = txt_edit.slice(0,pos_lic-1);
					var lic = txt_edit.slice(pos_lic);
					//console.log("Pozice radku licence = " + pos_lic);
					console.log("licence = " + lic);
					console.log("Overpass_elem.length = " + Overpass_elem.length);
					var count = Overpass_elem.filter(function () { return true; }).length;
					console.log("Overpass_elem.length.filter = " + count);
					var i;
					 var osm_elem = "";
					for (i = 0; i < Overpass_elem.length; i++) { 					  
					  console.log("Var_Overpass_elem = " + Overpass_elem [i])
					  osm_elem = osm_elem + "|"+ Overpass_elem [i] ;					  
					}						
					
					console.log("osm_elem =" + osm_elem ); 
					$textbox[0].value = starttxt + "\n\n{" + "{OSM_info"+ osm_elem + "}}\n\n" + lic;				
				}
			}			
		}
		else{
			setTimeout(editace, 50);
		}
	}	
});