MastodonStartpage/web/admin/edinsth.php
pezcurrel 352466bba8 ...
2020-04-16 22:56:12 +02:00

447 lines
22 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
require('include/glob.php');
require('include/muoribene.php');
require('include/sessionstart.php');
require('include/myconn.php');
require('include/getadmacc.php');
require('include/tables.php');
$tables=tables($link);
require('include/mb_ucfirst.php');
$dbg='';
use function mysqli_real_escape_string as myesc;
// praticamente una macro
function hspech($str) {
return(htmlspecialchars($str,ENT_QUOTES|ENT_HTML5,'UTF-8'));
}
$contextopts=array(
'http'=>array(
'timeout'=>5
),
'socket'=>array(
'tcp_nodelay'=>true
)
);
$context=stream_context_create($contextopts);
$email='pezcurrel@tiscali.it';
$langs=array('xx'=>'Local language','en'=>'English','es'=>'Español','fr'=>'Français','it'=>'Italiano');
$exvalsjsarr='null;'.N;
$morejs='';
$dbg.='<pre>GET:'.N.print_r($_GET,1).'POST:'.N.print_r($_POST,1).'</pre>';
function edaddrem($id,$table,$column,$dispselarr,$lntable,$lncolumn,$searchid,$dispselid,$recbid) {
global $link, $morejs, $account, $dlang;
if ($_POST['m']=='edit') {
if ($table!='Languages') {
mysqli_query($link,'UPDATE '.$table.' SET '.$column.'=\''.myesc($link,$_POST['v']).'\' WHERE ID='.$id)
or muoribene(__LINE__.': '.mysqli_error($link),true);
} else {
$langs=array('NameOrig'=>mb_ucfirst(locale_get_display_name($_POST['v'],$_POST['v'])),
'NameEN'=>mb_ucfirst(locale_get_display_name($_POST['v'],'en')),
'NameES'=>mb_ucfirst(locale_get_display_name($_POST['v'],'es')),
'NameFR'=>mb_ucfirst(locale_get_display_name($_POST['v'],'fr')),
'NameIT'=>mb_ucfirst(locale_get_display_name($_POST['v'],'it')));
if ($_POST['v']==$langs['NameOrig']) {
muoribene('«'.$_POST['v'].'»: unknown language identifier.',true);
} else {
mysqli_query($link,'UPDATE '.$table.' SET Code=\''.myesc($link,$_POST['v']).'\', NameOrig=\''.myesc($link,$langs['NameOrig']).'\', NameEN=\''.myesc($link,$langs['NameEN']).'\', NameES=\''.myesc($link,$langs['NameES']).'\', NameFR=\''.myesc($link,$langs['NameFR']).'\', NameIT=\''.myesc($link,$langs['NameIT']).'\' WHERE ID='.$id)
or muoribene(__LINE__.': '.mysqli_error($link),true);
$_POST['v']=$langs['Name'.$dlang].' ['.$_POST['v'].']';
}
}
$morejs.='parent.'.$dispselarr.'=parent.cheltxtbyval(parent.'.$dispselarr.','.$id.',"'.jsencode($_POST['v']).'");'.N;
$morejs.='parent.'.$dispselarr.'=parent.sortByKey(parent.'.$dispselarr.',0);'.N;
$morejs.='parent.'.$dispselarr.'=parent.selonebyval(parent.'.$dispselarr.','.$id.');'.N;
} elseif ($_POST['m']=='add') {
if ($table!='Languages') {
mysqli_query($link,'INSERT INTO '.$table.' (ID, '.$column.', AddedBy) VALUES (NULL, \''.myesc($link,$_POST['v']).'\', \''.$account['ID'].'\')')
or muoribene(__LINE__.': '.mysqli_error($link),true);
$newid=mysqli_insert_id($link);
} else {
$langs=array('NameOrig'=>mb_ucfirst(locale_get_display_name($_POST['v'],$_POST['v'])),
'NameEN'=>mb_ucfirst(locale_get_display_name($_POST['v'],'en')),
'NameES'=>mb_ucfirst(locale_get_display_name($_POST['v'],'es')),
'NameFR'=>mb_ucfirst(locale_get_display_name($_POST['v'],'fr')),
'NameIT'=>mb_ucfirst(locale_get_display_name($_POST['v'],'it')));
if (strtolower($_POST['v'])==strtolower($langs['NameOrig'])) {
muoribene('«'.$_POST['v'].'»: unknown language identifier.',true);
} else {
mysqli_query($link,'INSERT INTO '.$table.' (ID, Code, NameOrig, NameEN, NameES, NameFR, NameIT, AddedBy) VALUES (NULL, \''.myesc($link,$_POST['v']).'\', \''.myesc($link,$langs['NameOrig']).'\', \''.myesc($link,$langs['NameEN']).'\', \''.myesc($link,$langs['NameES']).'\', \''.myesc($link,$langs['NameFR']).'\', \''.myesc($link,$langs['NameIT']).'\', '.$account['ID'].')')
or muoribene(__LINE__.': '.mysqli_error($link),true);
$newid=mysqli_insert_id($link);
$_POST['v']=$langs['Name'.$dlang].' ['.$_POST['v'].']';
}
}
$morejs.='parent.'.$dispselarr.'.push(["'.jsencode($_POST['v']).'",'.$newid.',true]);'.N;
$morejs.='parent.'.$dispselarr.'=parent.sortByKey(parent.'.$dispselarr.',0);'.N;
$morejs.='parent.'.$dispselarr.'=parent.selonebyval(parent.'.$dispselarr.','.$newid.');'.N;
} elseif ($_POST['m']=='remove') {
if (!array_key_exists('subst',$_POST) || preg_match('/^[0-9]+$/',$_POST['subst'])!==1)
muoribene(__LINE__.': Malformed input.',true);
$newid=$_POST['subst']+0;
mysqli_query($link,'DELETE FROM '.$table.' WHERE ID='.$id)
or muoribene(__LINE__.': '.mysqli_error($link),true);
if ($newid==0) {
$res=mysqli_query($link,'SELECT * FROM '.$lntable.' WHERE '.$lncolumn.'='.$id)
or muoribene(__LINE__.': '.mysqli_error($link),true);
mysqli_query($link,'DELETE FROM '.$lntable.' WHERE '.$lncolumn.'='.$id)
or muoribene(__LINE__.': '.mysqli_error($link),true);
while ($row=mysqli_fetch_assoc($res)) {
$rres=mysqli_query($link,'SELECT * FROM '.$lntable.' WHERE InstID='.$row['InstID'].' ORDER BY Pos ASC') or muoribene(__LINE__.': '.mysqli_error($link),true);
$pos=0;
while ($rrow=mysqli_fetch_assoc($rres)) {
$pos++;
mysqli_query($link,'UPDATE '.$lntable.' SET Pos='.$pos.' WHERE InstID='.$rrow['InstID'].' AND '.$lncolumn.'='.$rrow[$lncolumn].' AND Pos='.$rrow['Pos'])
or muoribene(__LINE__.': '.mysqli_error($link),true);
}
}
} else {
$res=mysqli_query($link,'SELECT * FROM '.$lntable.' WHERE '.$lncolumn.'='.$id)
or muoribene(__LINE__.': '.mysqli_error($link),true);
while ($row=mysqli_fetch_assoc($res)) {
$rres=mysqli_query($link,'SELECT * FROM '.$lntable.' WHERE InstID='.$row['InstID'].' AND '.$lncolumn.'='.$newid) or muoribene(__LINE__.': '.mysqli_error($link),true);
if (mysqli_num_rows($rres)==0) {
mysqli_query($link,'UPDATE '.$lntable.' SET '.$lncolumn.'='.$newid.' WHERE InstID='.$row['InstID'].' AND '.$lncolumn.'='.$id.' AND Pos='.$row['Pos']) or muoribene(__LINE__.': '.mysqli_error($link),true);
//+++ potrebbe aver senso mettere js qui che sposti la voce agli associati se non è già lì, magari con un alerta
} else {
mysqli_query($link,'DELETE FROM '.$lntable.' WHERE InstID='.$row['InstID'].' AND '.$lncolumn.'='.$id.' AND Pos='.$row['Pos']) or muoribene(__LINE__.': '.mysqli_error($link),true);
$rres=mysqli_query($link,'SELECT * FROM '.$lntable.' WHERE InstID='.$row['InstID'].' ORDER BY Pos ASC') or muoribene(__LINE__.': '.mysqli_error($link),true);
$pos=0;
while ($rrow=mysqli_fetch_assoc($rres)) {
$pos++;
mysqli_query($link,'UPDATE '.$lntable.' SET Pos='.$pos.' WHERE InstID='.$rrow['InstID'].' AND '.$lncolumn.'='.$rrow[$lncolumn].' AND Pos='.$rrow['Pos'])
or muoribene(__LINE__.': '.mysqli_error($link),true);
}
}
}
}
$morejs.='parent.'.$dispselarr.'=parent.rmelbyval(parent.'.$dispselarr.','.$id.');'.N;
}
$morejs.='parent.filtsel (parent.'.$dispselarr.', parent.document.getElementById("'.$searchid.'").value, "'.$dispselid.'", "'.$recbid.'", "'.$searchid.'", "white", "#ff8080");'.N;
$morejs.='parent.closeinpup();'.N;
}
if (array_key_exists('w',$_GET) && array_key_exists('i',$_GET) && preg_match('/^[0-9]+$/',$_GET['i'])===1 && array_key_exists('m',$_GET) && in_array($_GET['m'],array('edit','add','remove'))) {
$id=$_GET['i']+0;
switch ($_GET['w']) {
case 'LocalityID':
$out=buildform($id,'Localities','Name'.$dlang,'Locality name','Instances','LocalityID');
$exvalsjsarr=setjsarr('Localities','Name'.$dlang);
break;
case 'DispLangs':
$out=buildform($id,'Languages','Code','Language code','InstOurLangs','OurLangID');
$exvalsjsarr=setjsarr('Languages','Code');
break;
case 'DispFinModes':
$out=buildform($id,'Financing','Type','Financing method','InstFinancing','FinID');
$exvalsjsarr=setjsarr('Financing','Type');
break;
case 'DispPolicies':
$out=buildform($id,'Policies','Name','Policy','InstPolicies','PolID');
$exvalsjsarr=setjsarr('Policies','Name');
break;
case 'DispTags':
$out=buildform($id,'Tags','Name','Tag','InstTags','TagID');
$exvalsjsarr=setjsarr('Tags','Name');
break;
default:
muoribene(__LINE__.': Malformed input.',true);
break;
}
} elseif (array_key_exists('m',$_POST) && in_array($_POST['m'],array('edit','add','remove')) && array_key_exists('t',$_POST) && in_array($_POST['t'],array('Localities','Languages','Financing','Policies','Tags')) && array_key_exists('i',$_POST) && preg_match('/^[0-9]+$/',$_POST['i'])===1) {
$id=$_POST['i']+0;
if (array_key_exists('v',$_POST)) {
$out='';
if ($_POST['t']=='Localities') {
if ($_POST['m']!='remove') {
//https://nominatim.openstreetmap.org/search?q=bresso,+milano&format=json&accept-language=fr&email=pezcurrel@tiscali.it
//https://nominatim.openstreetmap.org/lookup?osm_ids=R45266&format=json&accept-language=fr&addressdetails=1&email=pezcurrel@tiscali.it
$url='https://nominatim.openstreetmap.org/search?q='.urlencode($_POST['v']).'&format=json&email='.$email;
$osmd=@file_get_contents($url,false,$context);
if ($osmd!==false) {
$out.='<form action="edinsth.php" method="post" id="f">'.N;
$addrkeys=array('suburb','city','county','state','country');
$osmd=json_decode($osmd,true);
if (count($osmd)>0) {
$some=false;
$out.='<p><strong>Please choose the most detailed appropriate entry</strong></p>'.N;
foreach ($osmd as $loc) {
if (array_key_exists('osm_id',$loc) && array_key_exists('osm_type',$loc) && $loc['osm_type']=='relation') {
$out.='<div class="hifloc" onclick="subosmd(\''.$loc['osm_id'].'\');">'.N;
$out.='<ul class="hiful">'.N;
foreach ($langs as $code=>$lang) {
$url='https://nominatim.openstreetmap.org/lookup?osm_ids=R'.$loc['osm_id'].'&format=json&accept-language='.$code.'&addressdetails=1&email='.$email;
$osmdil=@file_get_contents($url,false,$context);
if ($osmdil!==false) {
$some=true; //+++
$osmdil=json_decode($osmdil,true);
if (array_key_exists(0,$osmdil) && array_key_exists('address',$osmdil[0])) {
$dispname='';
foreach ($addrkeys as $addrkey)
if (array_key_exists($addrkey,$osmdil[0]['address']))
$dispname.=$osmdil[0]['address'][$addrkey].', ';
$dispname=substr($dispname,0,-2);
$out.='<li><strong>'.$lang.':</strong> '.hspech($dispname).'</li>'.N;
$out.='<input type="hidden" id="Loc'.strtoupper($code).'-'.$loc['osm_id'].'" value="'.jsencode($dispname).'">'.N;
} else {
$out.='<li class="hiferr"><strong>'.$lang.':</strong> Couldnt parse OpenStreetMap lookup data.</li>'.N;
$out.='<input type="hidden" id="Loc'.strtoupper($code).'-'.$loc['osm_id'].'" value="">'.N;
}
} else {
$out.='<li class="hiferr"><strong>'.$lang.':</strong> Couldnt fetch OpenStreetMap lookup data.</li>'.N;
}
}
$out.='</ul>'.N.'</div>'.N;
}
}
if ($some) {
$out.='<input type="hidden" id="i" name="i" value="'.$_POST['i'].'">'.N;
$out.='<input type="hidden" id="t" name="t" value="'.$_POST['t'].'">'.N;
$out.='<input type="hidden" id="m" name="m" value="'.$_POST['m'].'">'.N;
$out.='<input type="hidden" id="LocXX" name="LocXX" value="">'.N;
$out.='<input type="hidden" id="LocEN" name="LocEN" value="">'.N;
$out.='<input type="hidden" id="LocES" name="LocES" value="">'.N;
$out.='<input type="hidden" id="LocFR" name="LocFR" value="">'.N;
$out.='<input type="hidden" id="LocIT" name="LocIT" value="">'.N;
$out.='</form>'.N;
} else {
$out='<p class="hiferr">Couldnt find localized OpenStreetMap data for «'.hspech($_POST['v']).'».</p>';
}
} else {
$out='<p class="hiferr">Couldnt find OpenStreetMap data for «'.hspech($_POST['v']).'».</p>';
}
} else {
$out='<p class="hiferr">Couldnt fetch OpenStreetMap search data.</p>'.N;
}
} else {
// locality remove
$out='CANCELLO!';
if (!array_key_exists('subst',$_POST) || preg_match('/^[0-9]+$/',$_POST['subst'])!==1)
muoribene(__LINE__.': Malformed input.',true);
$_POST['subst']+=0;
if ($_POST['subst']==0) {
mysqli_query($link,'UPDATE Instances SET LocalityID=NULL WHERE LocalityID='.$id)
or muoribene(__LINE__.': '.mysqli_error($link),true);
} else {
mysqli_query($link,'UPDATE Instances SET LocalityID='.$_POST['subst'].' WHERE LocalityID='.$id)
or muoribene(__LINE__.': '.mysqli_error($link),true);
}
mysqli_query($link,'DELETE FROM Localities WHERE ID='.$id)
or muoribene(__LINE__.': '.mysqli_error($link),true);
$morejs.='parent.locselarr=parent.rmelbyval(parent.locselarr,'.$id.');'.N;
$morejs.='parent.filtsel (parent.locselarr, parent.document.getElementById("locsearch").value, "LocalityID", "locselre", "locsearch", "white", "#ff8080");'.N;
$morejs.='parent.closeinpup();'.N;
}
} elseif ($_POST['t']=='Languages') {
edaddrem($id,'Languages','Name'.$dlang,'langselarr','InstOurLangs','OurLangID','langsearch','DispLangs','langselre');
} elseif ($_POST['t']=='Financing') {
edaddrem($id,'Financing','Type','finselarr','InstFinancing','FinID','finsearch','DispFinModes','finselre');
} elseif ($_POST['t']=='Policies') {
edaddrem($id,'Policies','Name','polselarr','InstPolicies','PolID','polsearch','DispPolicies','polselre');
} elseif ($_POST['t']=='Tags') {
edaddrem($id,'Tags','Name','tagselarr','InstTags','TagID','tagsearch','DispTags','tagselre');
} else {
// questo è ridondante ma fa niente
muoribene(__LINE__.': Malformed input.',true);
}
} elseif (array_key_exists('LocXX',$_POST) && array_key_exists('LocEN',$_POST) && array_key_exists('LocES',$_POST) && array_key_exists('LocFR',$_POST) && array_key_exists('LocIT',$_POST)) {
// locality edit/add
$out='EDITO/AGGIUNGO!';
// qui, sia su add sia su edit, serve check che non esista già +++
if ($_POST['m']=='add') {
mysqli_query($link,'INSERT INTO Localities (ID, NameOrig, NameEN, NameES, NameFR, NameIT, AddedBy) VALUES (NULL, \''.myesc($link,$_POST['LocXX']).'\', \''.myesc($link,$_POST['LocEN']).'\', \''.myesc($link,$_POST['LocES']).'\', \''.myesc($link,$_POST['LocFR']).'\', \''.myesc($link,$_POST['LocIT']).'\', \''.$account['ID'].'\')')
or muoribene(__LINE__.': '.mysqli_error($link),true);
$id=mysqli_insert_id($link);
$morejs.='parent.locselarr.push(["'.jsencode($_POST['Loc'.$dlang]).'",'.$id.',true]);'.N;
} elseif ($_POST['m']=='edit') {
mysqli_query($link,'UPDATE Localities SET NameOrig=\''.myesc($link,$_POST['LocXX']).'\', NameEN=\''.myesc($link,$_POST['LocEN']).'\', NameES=\''.myesc($link,$_POST['LocES']).'\', NameFR=\''.myesc($link,$_POST['LocFR']).'\', NameIT=\''.myesc($link,$_POST['LocIT']).'\' WHERE ID='.$id)
or muoribene(__LINE__.': '.mysqli_error($link),true);
$morejs.='parent.locselarr=parent.cheltxtbyval(parent.locselarr,'.$id.',"'.jsencode($_POST['Loc'.$dlang]).'");'.N;
}
$morejs.='parent.locselarr=parent.sortByKey(parent.locselarr,0);'.N;
$morejs.='parent.locselarr=parent.selonebyval(parent.locselarr,'.$id.');'.N;
$morejs.='parent.filtsel (parent.locselarr, parent.document.getElementById("locsearch").value, "LocalityID", "locselre", "locsearch", "white", "#ff8080");'.N;
$morejs.='parent.closeinpup();'.N;
} else {
muoribene(__LINE__.': Malformed input.',true);
}
} else {
muoribene(__LINE__.': Malformed input.',true);
}
function buildform($id,$table,$column,$title,$lntable,$lncolumn) {
global $account, $tables, $link;
$out='';
if ($_GET['m']=='edit' || $_GET['m']=='remove') {
$res=mysqli_query($link,'SELECT * FROM '.$table.' WHERE ID='.$id)
or muoribene(__LINE__.': '.mysqli_error($link),true);
if (mysqli_num_rows($res)==1) {
$row=mysqli_fetch_assoc($res);
if ($account['Level']=='guest') {
if ($row['AddedBy']!=$account['ID'])
muoribene('You cant modify an entry you didnt add.',true);
$rres=mysqli_query($link,'SELECT * FROM '.$lntable.' WHERE '.$lncolumn.'='.$id.' AND AddedBy!='.$account['ID'])
or muoribene(__LINE__.': '.mysqli_error($link),true);
if (mysqli_num_rows($rres)>0)
muoribene('You cant modify an entry that has already been linked by others.',true);
}
if ($_GET['m']=='edit') {
$out.='<div class="hiflab"><label for="v">'.$title.'</label></div>'.N;
$out.='<input type="text" class="hifinp" name="v" id="v" maxlength="'.$tables[$table][$column].'" value="'.hspech($row[$column]).'">'.N;
$out.='<script language="JavaScript">'.N;
$out.='<!--'.N;
$out.='document.getElementById(\'v\').focus();'.N;
$out.='document.getElementById(\'v\').select();'.N;
$out.='//-->'.N;
$out.='</script>'.N;
} elseif ($_GET['m']=='remove') {
$lnres=mysqli_query($link,'SELECT * FROM '.$lntable.' WHERE '.$lncolumn.'='.$id)
or muoribene(__LINE__.': '.mysqli_error($link),true);
$nlinking=mysqli_num_rows($lnres);
if ($nlinking>0) {
$out.='<div class="hiflab">«'.hspech($row[$column]).'» is referenced by '.$nlinking.' '.(($nlinking==1) ? 'instance' : 'instances').'!</div>'.N;
$out.='<div class="hifdiv">What do you want to do with '.(($nlinking==1) ? 'this reference' : 'those '.$nlinking.' references').'?<br>If you choose “Delete” '.(($nlinking==1) ? 'it' : 'they').' will be removed; otherwise you can select a substitution record.</div>'.N;
$out.='<select id="subst" name="subst" class="hifinp">'.N;
$out.='<option value="0">Delete</option>'.N;
$lnres=mysqli_query($link,'SELECT * FROM '.$table.' WHERE ID!='.$id.' ORDER BY '.$column.' ASC')
or muoribene(__LINE__.': '.mysqli_error($link),true);
while ($lnrow=mysqli_fetch_assoc($lnres)) {
$out.='<option value="'.$lnrow['ID'].'">Subst. with «'.hspech($lnrow[$column]).'»</option>'.N;
}
$out.='</select>'.N;
} else {
$out.='<input type="hidden" name="subst" value="0">'.N;
}
$out.='<div class="hiflab">Are you sure you want to remove «'.$row[$column].'»?</div>'.N;
$out.='<input type="hidden" name="v" value="IGNORAMI">'.N;
}
$out.='<input type="hidden" name="i" value="'.$id.'">'.N;
} else {
$out.='<p>There is no '.$title.' with ID='.$id.'</p>'.N;
}
} elseif ($_GET['m']=='add') {
$out.='<div class="hiflab"><label for="v">'.$title.'</label></div>'.N;
$out.='<input type="text" class="hifinp" name="v" id="v" maxlength="'.$tables[$table][$column].'" value="">'.N;
$out.='<script language="JavaScript">'.N;
$out.='<!--'.N;
$out.='document.getElementById(\'v\').focus();'.N;
$out.='document.getElementById(\'v\').select();'.N;
$out.='//-->'.N;
$out.='</script>'.N;
$out.='<input type="hidden" name="i" value="0">'.N;
}
$out.='<input type="hidden" name="m" value="'.$_GET['m'].'">'.N;
$out.='<input type="hidden" name="t" value="'.$table.'">'.N;
$out.='<div id="errmsg"></div>'.N;
$out.='<table class="hiftab"><tr><td style="width:50%"><input type="button" value="Cancel" class="hifbut" onclick="parent.closeinpup()"></td><td style="width:50%"><input type="button" value="Ok" class="hifbut" onclick="ckf(\''.$_GET['m'].'\',\''.$table.'\')"></td></tr></table>'.N;
$out='<form action="edinsth.php" method="post" id="f" onsubmit="return ckf(\''.$_GET['m'].'\',\''.$table.'\');">'.N.$out.'</form>'.N;
return($out);
}
function jsencode($str) {
return(str_replace('"','\"',$str));
}
function setjsarr($table,$column) {
global $link;
$jsarr=array();
$res=mysqli_query($link,'SELECT '.$column.' FROM '.$table)
or muoribene(__LINE__.': '.mysqli_error($link),true);
while ($row=mysqli_fetch_assoc($res)) {
$jsarr[]=jsencode(strtolower($row[$column]));
}
$jsarr='["'.implode('","',$jsarr).'"];'.N;
return($jsarr);
}
mysqli_close($link);
?>
<!DOCTYPE HTML>
<html lang="en">
<head>
<title>Mastodon Startpage Admin - Little edits helper</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="description" content="Admin pages for Mastodon Startpage">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<script language="JavaScript" src="js/confirma.js?v=<?php echo($cjrand); ?>"></script>
<script language="JavaScript" src="js/alerta.js?v=<?php echo($cjrand); ?>"></script>
<link rel="stylesheet" type="text/css" href="theme.css?v=<?php echo($cjrand); ?>">
<script language="JavaScript">
<!--
exvalsarr=<?php echo($exvalsjsarr); ?>
function ckf(mode,table) {
var ok=false;
if (mode=='remove') {
ok=true;
} else if (mode=='add' || mode=='edit') {
var val=document.getElementById('v').value.trim(), vallow=val.toLowerCase(), len=exvalsarr.length, i=0, found=false;
document.getElementById('v').value=val;
if (val!='') {
for (i=0; i<len; i++) {
if (exvalsarr[i]==vallow) {
found=true;
break;
}
}
if (found) {
document.getElementById('errmsg').innerHTML='«'+val+'» already exists!';
} else {
ok=true;
}
} else {
document.getElementById('errmsg').innerHTML='You cant submit an empty value!';
}
}
if (ok) {
var wdiv=document.getElementById('wait');
if (table=='Localities' && mode!='remove')
wdiv.innerHTML='Fetching data from OpenStreetMap.org ...';
else
wdiv.innerHTML='Sending data ...';
wdiv.style.display='block';
document.getElementById('f').submit();
} else {
return false;
}
}
function subosmd(osmid) {
document.getElementById('LocXX').value=document.getElementById('LocXX-'+osmid).value;
document.getElementById('LocEN').value=document.getElementById('LocEN-'+osmid).value;
document.getElementById('LocES').value=document.getElementById('LocES-'+osmid).value;
document.getElementById('LocFR').value=document.getElementById('LocFR-'+osmid).value;
document.getElementById('LocIT').value=document.getElementById('LocIT-'+osmid).value;
if (document.getElementById('LocXX').value=='' || document.getElementById('LocEN').value=='' || document.getElementById('LocES').value=='' || document.getElementById('LocFR').value=='' || document.getElementById('LocIT').value=='') {
alert('NO GOOD!');
} else {
document.getElementById('f').submit();
}
}
<?php echo($morejs); ?>
//-->
</script>
</head>
<body class="hifbody">
<div id="fullscreen">
<div id="middlerow">
<?php echo($out); ?>
</div>
</div>
<div id="debugh">
<?php echo($dbg); ?>
</div>
<div id="wait">
...
</div>
</body>
</html>