<!doctype html>
<head>
<title>Window localStorage as Needed - RJM Programming - December, 2019</title>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
textarea {
font-family:Consolas,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New, monospace;
}
</style>
<script type='text/javascript'>

var datamode="localStorage";
var ao;
var aohref='mailto:?subject=Capitals%20of%20Countries%20%2e%2e%2e%20can%20copy%20in%20clipboard%20contents&body=';
var bo;
var bohref='sms:?subject=Capitals%20of%20Countries%20%2e%2e%2e%20can%20copy%20in%20clipboard%20contents&body=';
var numlines=0;

var lastemail='';
var lastsms='';
var tablemode='';
var selem='';
var goThrough=0;
var img1, img2, img5, div5;
var seleval='';
var lastseleval='';
var gapiref='';
var gapiprefix='https://www.wunderground.com/q/';

var wiois=null;
var countryis='';
var placeis='';
var ssdata='';

var elem=null;
var context;
var cf = "16px Verdana"; //Courier New";

var phpexists=false;
var getcapitals=location.search.split('capitals=')[1] ? decodeURIComponent(location.search.split('capitals=')[1].split('&')[0]).replace(/\+/g,' ') : '';
var getcountries=location.search.split('countries=')[1] ? decodeURIComponent(location.search.split('countries=')[1].split('&')[0]).replace(/\+/g,' ') : '';
var zhr=null;
var url='';
var zok=0;
var bprefix='';
var firstopt='';
var wasopts='';
var restopts='';

var tzp=',"Africa/Abidjan","Africa/Accra","Africa/Addis_Ababa","Africa/Algiers","Africa/Asmara","Africa/Bamako","Africa/Bangui","Africa/Banjul","Africa/Bissau","Africa/Blantyre","Africa/Brazzaville","Africa/Bujumbura","Africa/Cairo","Africa/Casablanca","Africa/Ceuta","Africa/Conakry","Africa/Dakar","Africa/Dar_es_Salaam","Africa/Djibouti","Africa/Douala","Africa/El_Aaiun","Africa/Freetown","Africa/Gaborone","Africa/Harare","Africa/Johannesburg","Africa/Juba","Africa/Kampala","Africa/Khartoum","Africa/Kigali","Africa/Kinshasa","Africa/Lagos","Africa/Libreville","Africa/Lome","Africa/Luanda","Africa/Lubumbashi","Africa/Lusaka","Africa/Malabo","Africa/Maputo","Africa/Maseru","Africa/Mbabane","Africa/Mogadishu","Africa/Monrovia","Africa/Nairobi","Africa/Ndjamena","Africa/Niamey","Africa/Nouakchott","Africa/Ouagadougou","Africa/Porto-Novo","Africa/Sao_Tome","Africa/Tripoli","Africa/Tunis","Africa/Windhoek","America/Adak","America/Anchorage","America/Anguilla","America/Antigua","America/Araguaina","America/Argentina/Buenos_Aires","America/Argentina/Catamarca","America/Argentina/Cordoba","America/Argentina/Jujuy","America/Argentina/La_Rioja","America/Argentina/Mendoza","America/Argentina/Rio_Gallegos","America/Argentina/Salta","America/Argentina/San_Juan","America/Argentina/San_Luis","America/Argentina/Tucuman","America/Argentina/Ushuaia","America/Aruba","America/Asuncion","America/Atikokan","America/Bahia","America/Bahia_Banderas","America/Barbados","America/Belem","America/Belize","America/Blanc-Sablon","America/Boa_Vista","America/Bogota","America/Boise","America/Cambridge_Bay","America/Campo_Grande","America/Cancun","America/Caracas","America/Cayenne","America/Cayman","America/Chicago","America/Chihuahua","America/Costa_Rica","America/Creston","America/Cuiaba","America/Curacao","America/Danmarkshavn","America/Dawson","America/Dawson_Creek","America/Denver","America/Detroit","America/Dominica","America/Edmonton","America/Eirunepe","America/El_Salvador","America/Fortaleza","America/Glace_Bay","America/Godthab","America/Goose_Bay","America/Grand_Turk","America/Grenada","America/Guadeloupe","America/Guatemala","America/Guayaquil","America/Guyana","America/Halifax","America/Havana","America/Hermosillo","America/Indiana/Indianapolis","America/Indiana/Knox","America/Indiana/Marengo","America/Indiana/Petersburg","America/Indiana/Tell_City","America/Indiana/Vevay","America/Indiana/Vincennes","America/Indiana/Winamac","America/Inuvik","America/Iqaluit","America/Jamaica","America/Juneau","America/Kentucky/Louisville","America/Kentucky/Monticello","America/Kralendijk","America/La_Paz","America/Lima","America/Los_Angeles","America/Lower_Princes","America/Maceio","America/Managua","America/Manaus","America/Marigot","America/Martinique","America/Matamoros","America/Mazatlan","America/Menominee","America/Merida","America/Metlakatla","America/Mexico_City","America/Miquelon","America/Moncton","America/Monterrey","America/Montevideo","America/Montreal","America/Montserrat","America/Nassau","America/New_York","America/Nipigon","America/Nome","America/Noronha","America/North_Dakota/Beulah","America/North_Dakota/Center","America/North_Dakota/New_Salem","America/Ojinaga","America/Panama","America/Pangnirtung","America/Paramaribo","America/Phoenix","America/Port-au-Prince","America/Port_of_Spain","America/Porto_Velho","America/Puerto_Rico","America/Rainy_River","America/Rankin_Inlet","America/Recife","America/Regina","America/Resolute","America/Rio_Branco","America/Santa_Isabel","America/Santarem","America/Santiago","America/Santo_Domingo","America/Sao_Paulo","America/Scoresbysund","America/Shiprock","America/Sitka","America/St_Barthelemy","America/St_Johns","America/St_Kitts","America/St_Lucia","America/St_Thomas","America/St_Vincent","America/Swift_Current","America/Tegucigalpa","America/Thule","America/Thunder_Bay","America/Tijuana","America/Toronto","America/Tortola","America/Vancouver","America/Whitehorse","America/Winnipeg","America/Yakutat","America/Yellowknife","Antarctica/Casey","Antarctica/Davis","Antarctica/DumontDUrville","Antarctica/Macquarie","Antarctica/Mawson","Antarctica/McMurdo","Antarctica/Palmer","Antarctica/Rothera","Antarctica/South_Pole","Antarctica/Syowa","Antarctica/Vostok","Arctic/Longyearbyen","Asia/Aden","Asia/Almaty","Asia/Amman","Asia/Anadyr","Asia/Aqtau","Asia/Aqtobe","Asia/Ashgabat","Asia/Baghdad","Asia/Bahrain","Asia/Baku","Asia/Bangkok","Asia/Beirut","Asia/Bishkek","Asia/Brunei","Asia/Choibalsan","Asia/Chongqing","Asia/Colombo","Asia/Damascus","Asia/Dhaka","Asia/Dili","Asia/Dubai","Asia/Dushanbe","Asia/Gaza","Asia/Harbin","Asia/Hebron","Asia/Ho_Chi_Minh","Asia/Hong_Kong","Asia/Hovd","Asia/Irkutsk","Asia/Jakarta","Asia/Jayapura","Asia/Jerusalem","Asia/Kabul","Asia/Kamchatka","Asia/Karachi","Asia/Kashgar","Asia/Kathmandu","Asia/Kolkata","Asia/Krasnoyarsk","Asia/Kuala_Lumpur","Asia/Kuching","Asia/Kuwait","Asia/Macau","Asia/Magadan","Asia/Makassar","Asia/Manila","Asia/Muscat","Asia/Nicosia","Asia/Novokuznetsk","Asia/Novosibirsk","Asia/Omsk","Asia/Oral","Asia/Phnom_Penh","Asia/Pontianak","Asia/Pyongyang","Asia/Qatar","Asia/Qyzylorda","Asia/Rangoon","Asia/Riyadh","Asia/Sakhalin","Asia/Samarkand","Asia/Seoul","Asia/Shanghai","Asia/Singapore","Asia/Taipei","Asia/Tashkent","Asia/Tbilisi","Asia/Tehran","Asia/Thimphu","Asia/Tokyo","Asia/Ulaanbaatar","Asia/Urumqi","Asia/Vientiane","Asia/Vladivostok","Asia/Yakutsk","Asia/Yekaterinburg","Asia/Yerevan","Atlantic/Azores","Atlantic/Bermuda","Atlantic/Canary","Atlantic/Cape_Verde","Atlantic/Faroe","Atlantic/Madeira","Atlantic/Reykjavik","Atlantic/South_Georgia","Atlantic/St_Helena","Atlantic/Stanley","Australia/Adelaide","Australia/Brisbane","Australia/Broken_Hill","Australia/Currie","Australia/Darwin","Australia/Eucla","Australia/Hobart","Australia/Lindeman","Australia/Lord_Howe","Australia/Melbourne","Australia/Sydney","Europe/Amsterdam","Europe/Andorra","Europe/Athens","Europe/Belgrade","Europe/Berlin","Europe/Bratislava","Europe/Brussels","Europe/Bucharest","Europe/Budapest","Europe/Chisinau","Europe/Copenhagen","Europe/Dublin","Europe/Gibraltar","Europe/Guernsey","Europe/Helsinki","Europe/Isle_of_Man","Europe/Istanbul","Europe/Jersey","Europe/Kaliningrad","Europe/Kiev","Europe/Lisbon","Europe/Ljubljana","Europe/Luxembourg","Europe/Madrid","Europe/Malta","Europe/Mariehamn","Europe/Minsk","Europe/Monaco","Europe/Moscow","Europe/Oslo","Europe/Paris","Europe/Podgorica","Europe/Prague","Europe/Riga","Europe/Rome","Europe/Samara","Europe/San_Marino","Europe/Sarajevo","Europe/Simferopol","Europe/Skopje","Europe/Sofia","Europe/Stockholm","Europe/Tallinn","Europe/Tirane","Europe/Uzhgorod","Europe/Vaduz","Europe/Vatican","Europe/Vienna","Europe/Vilnius","Europe/Volgograd","Europe/Warsaw","Europe/Zagreb","Europe/Zaporozhye","Europe/Zurich","Indian/Antananarivo","Indian/Chagos","Indian/Christmas","Indian/Cocos","Indian/Comoro","Indian/Kerguelen","Indian/Mahe","Indian/Maldives","Indian/Mauritius","Indian/Mayotte","Indian/Reunion","Pacific/Apia","Pacific/Auckland","Pacific/Chatham","Pacific/Chuuk","Pacific/Easter","Pacific/Efate","Pacific/Enderbury","Pacific/Fakaofo","Pacific/Fiji","Pacific/Funafuti","Pacific/Galapagos","Pacific/Gambier","Pacific/Guadalcanal","Pacific/Guam","Pacific/Honolulu","Pacific/Johnston","Pacific/Kiritimati","Pacific/Kosrae","Pacific/Kwajalein","Pacific/Majuro","Pacific/Marquesas","Pacific/Midway","Pacific/Nauru","Pacific/Niue","Pacific/Norfolk","Pacific/Noumea","Pacific/Pago_Pago","Pacific/Palau","Pacific/Pitcairn","Pacific/Pohnpei","Pacific/Port_Moresby","Pacific/Rarotonga","Pacific/Saipan","Pacific/Tahiti","Pacific/Tarawa","Pacific/Tongatapu","Pacific/Wake","Pacific/Wallis","Australia/Perth","Antarctica/Troll","Asia/Chita","Asia/Khandyga","Asia/Srednekolymsk","Asia/Ust-Nera","Europe/Busingen","Pacific/Bougainville","America/Fort_Nelson","Asia/Atyrau","Asia/Barnaul","Asia/Famagusta","Asia/Tomsk","Europe/London",';

function dragElement(elmnt) { // thanks to https://www.w3schools.com/howto/howto_js_draggable.asp
var pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;
if (document.getElementById("d" + elmnt.id)) {
// if present, the header is where you move the DIV from:
document.getElementById("d" + elmnt.id).onmousedown = dragMouseDown;
} else {
// otherwise, move the DIV from anywhere inside the DIV:
elmnt.onmousedown = dragMouseDown;
}

function dragMouseDown(e) {
e = e || window.event;
e.preventDefault();
// get the mouse cursor position at startup:
pos3 = e.clientX;
pos4 = e.clientY;
document.onmouseup = closeDragElement;
// call a function whenever the cursor moves:
document.onmousemove = elementDrag;
}

function elementDrag(e) {
e = e || window.event;
e.preventDefault();
// calculate the new cursor position:
pos1 = pos3 - e.clientX;
pos2 = pos4 - e.clientY;
pos3 = e.clientX;
pos4 = e.clientY;
// set the element's new position:
elmnt.style.top = (elmnt.offsetTop - pos2) + "px";
elmnt.style.left = (elmnt.offsetLeft - pos1) + "px";
}

function closeDragElement() {
// stop moving when mouse button is released:
document.onmouseup = null;
document.onmousemove = null;
}
}

function moveit(xm,ym) {
document.getElementById('dmyiframe').style.left='' + eval(xm + eval('' + document.getElementById('dmyiframe').style.left.replace('px',''))) + 'px';
document.getElementById('dmyiframe').style.top='' + eval(ym + eval('' + document.getElementById('dmyiframe').style.top.replace('px',''))) + 'px';
document.getElementById('myiframe').style.left='' + eval(xm + eval('' + document.getElementById('myiframe').style.left.replace('px',''))) + 'px';
document.getElementById('myiframe').style.top='' + eval(ym + eval('' + document.getElementById('myiframe').style.top.replace('px',''))) + 'px';
}

function readyitforsort(iselid) {
var optsare=[];
var huhisel=document.getElementById(iselid).innerHTML;
var huhsopts=huhisel.split('</option>');
for (var ihuh=0; ihuh<huhsopts.length; ihuh++) {
if (huhsopts[ihuh].trim() != '') {
if (firstopt == '') {
firstopt=huhsopts[ihuh] + '</option>';
} else {
wasopts+=huhsopts[ihuh].replace('option ','option data-ih="' + (huhsopts[ihuh].split('>')[eval(-1 + huhsopts[ihuh].split('>').length)] + '" ')) + '</option>';
optsare.push(huhsopts[ihuh].replace('option ','option data-ih="' + (huhsopts[ihuh].split('>')[eval(-1 + huhsopts[ihuh].split('>').length)] + '" ')) + '</option>');
}
}
}
optsare.sort();
for (var jhuh=0; jhuh<optsare.length; jhuh++) {
restopts+=optsare[jhuh];
}
//alert(restopts);
}

function getXMLHttpRequest() {
if (window.XMLHttpRequest) {
return new window.XMLHttpRequest;
}
else {
try {
return new ActiveXObject("Msxml2.XMLHTTP");
} catch (othermicrosoft) {
try {
return new ActiveXObject("Microsoft.XMLHTTP");
} catch (failed) {
return false;
}
}
}
}


function ajaxit(qselx) {
if (qselx.indexOf('.php') != -1) {
url=qselx;
//alert(url);
if (!zhr) {
zhr = getXMLHttpRequest();
} //else {
//zok = 1;
//}

if (zhr != null) {
zhr = zhr;
} else {
try {
zhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch (othermicrosoft) {
try {
zhr = new ActiveXObject("Microsoft.XMLHTTP");
} catch (failed) {
zhr = false;
}
}
}

if (zhr) {
//alert(987);
if (url != '') {
zhr.open("GET", url, true);
zhr.onreadystatechange = xshowStuff;
zhr.send(null);
//alert(url);
}
} else {
zok = 1; //alert("Sorry ... no XMLHttpRequest possible");
}
} else {
var qsel=qselx.replace(/\ contenteditable\=\"true\"/g, '').replace(/\ contenteditable\=\"false\"/g, '');
placeis=qsel.split('</td>')[0].split('>')[eval(-1 + qsel.split('</td>')[0].split('>').length)];
countryis=qsel.split('</td>')[1].split('>')[eval(-1 + qsel.split('</td>')[1].split('>').length)];
if (qsel != '') {
seleval=(qsel.split('</td>')[0].split('>')[eval(-1 + qsel.split('</td>')[0].split('>').length)].split(' (')[0]).replace(/\ /g,'_') + '/' + (qsel.split('</td>')[1].split('>')[eval(-1 + qsel.split('</td>')[1].split('>').length)]).replace(/\ /g,'_');
gapiref='';
//document.getElementById('igapiref').value='';
// using_key.php?theseparameters=aq%3F' + otherideas + 'query%3D' + encodeURIComponent(x)
//document.getElementById('weatheri').src='//www.rjmprogramming.com.au/weather/autocomplete.htm?place=' + encodeURIComponent(seleval.replace('/',', '));
if (!document.getElementById('weatheri')) {
document.getElementById('dweatheri').innerHTML="<iframe id=weatheri onload=wselit(this); style='display:none;' src='" + '//www.rjmprogramming.com.au/weather/using_key.php?theseparameters=aq%3Fquery%3D' + encodeURIComponent(seleval.replace('/',', ')) + "'></iframe>";
} else {
document.getElementById('weatheri').src='//www.rjmprogramming.com.au/weather/using_key.php?theseparameters=aq%3Fquery%3D' + encodeURIComponent(seleval.replace('/',', '));
}
if (seleval != lastseleval) {
lastseleval=seleval;
//alert(seleval + ' ' + qsel);
url="https://www.rjmprogramming.com.au/HTMLCSS/colour_wheel.html?mode=" + encodeURIComponent(qsel.split('</td>')[1].split('>')[eval(-1 + qsel.split('</td>')[1].split('>').length)]) + "%2F" + encodeURIComponent(qsel.split('</td>')[0].split('>')[eval(-1 + qsel.split('</td>')[0].split('>').length)].split(' (')[0]);
//alert(url);
if (!zhr) {
zhr = getXMLHttpRequest();
} //else {
//zok = 1;
//}

if (zhr != null) {
zhr = zhr;
} else {
try {
zhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch (othermicrosoft) {
try {
zhr = new ActiveXObject("Microsoft.XMLHTTP");
} catch (failed) {
zhr = false;
}
}
}

if (zhr) {
//alert(987);
if (url != '') {
setTimeout(zdoit, 1000);
//alert(url);
}
} else {
zok = 1; //alert("Sorry ... no XMLHttpRequest possible");
}
}


}


}
}

function zdoit() {
zok=0;
zhr.open("GET", url, true);
zhr.onreadystatechange = showStuff;
zhr.send(null);
url='';
var tdss=document.getElementsByTagName('td');
for (var itdss=0; itdss<tdss.length; itdss++) {
if (countryis == tdss[itdss].innerHTML) {
tdss[itdss].setAttribute('contenteditable', true);
}
}
}

function noif() {
document.getElementById('dmyiframe').style.zIndex='-5';
document.getElementById('dmyiframe').style.display='none';
document.getElementById('myiframe').style.zIndex='-5';
document.getElementById('myiframe').style.display='none';
}

function xshowStuff(evt) {
if (zhr.readyState == 4) {
if (zhr.status == 200) {
phpexists=true;
}
}
}

function showStuff(evt) {
if (zok == 0 && zhr != null) {
if (zhr.readyState == 4) {
if (zhr.status == 200) {
document.getElementById('dmyiframe').style.display='block';
document.getElementById('dmyiframe').style.zIndex='5';
document.getElementById('myiframe').style.display='block';
document.getElementById('myiframe').style.zIndex='5';
//alert(zhr.responseText.split('select ')[2]);
//if (zhr.responseText.indexOf("/Abidjan") != -1 && zhr.responseText.indexOf("/" + seleval.split('/')[0] + '"') == -1) {
// alert("did not find " + "/" + seleval.split('/')[0] + '"');
//}
ssdata=zhr.responseText.replace("/" + seleval.split('/')[0] + '"', "/" + seleval.split('/')[0] + '" selected').replace('</body>', '<br><br><button onclick="parent.moveit(5,0);">➡</button> <button onclick="parent.moveit(0,5);">🔽</button> <input type=button onclick="parent.document.getElementById(' + "'" + 'myiframe' + "'" + ').style.zIndex=-5; parent.document.getElementById(' + "'" + 'myiframe' + "'" + ').style.display=' + "'" + 'none' + "'" + '; parent.document.getElementById(' + "'" + 'myiframe' + "'" + ').srcdoc=' + "'" + '' + "'" + ';" value=Close></input> <button onclick="parent.moveit(-5,0);">⬅</button> <button onclick="parent.moveit(0,-5);">🔼</button></body>');
setTimeout(doitthen, 3000);
if (1 == 11) {
if (document.getElementById('myselcont').innerHTML.indexOf('/q/') != -1) {
var apiselsare=document.getElementById('myselcont').innerHTML.toLowerCase().split('/q/');
//alert('YEs:' + document.getElementById('myselcont').innerHTML);
if (eval('' + apiselsare.length) > 1) {
//alert('YES:' + document.getElementById('myselcont').innerHTML);
gapiref=apiselsare[1].replace('>','"').split('"')[0];
document.getElementById('igapiref').value=gapiprefix + gapiref;
}
}
if (gapiref != '') {
document.getElementById('myiframe').srcdoc=zhr.responseText.replace("/" + seleval.split('/')[0] + '"', "/" + seleval.split('/')[0] + '" selected').replace('</body>', '<br><br><input type=button onclick="parent.document.getElementById(' + "'" + 'myiframe' + "'" + ').style.zIndex=-5; parent.document.getElementById(' + "'" + 'myiframe' + "'" + ').style.display=' + "'" + 'none' + "'" + '; parent.document.getElementById(' + "'" + 'myiframe' + "'" + ').srcdoc=' + "'" + '' + "'" + ';" value=Close></input></body>').replace('</h4>','  <a style="text-decoration:none;cursor:pointer;font-size:24px;" target=_blank title=Weather href="' + gapiprefix + gapiref + '">⛅</a></h4>');
} else {
document.getElementById('myiframe').srcdoc=zhr.responseText.replace("/" + seleval.split('/')[0] + '"', "/" + seleval.split('/')[0] + '" selected').replace('</body>', '<br><br><input type=button onclick="parent.document.getElementById(' + "'" + 'myiframe' + "'" + ').style.zIndex=-5; parent.document.getElementById(' + "'" + 'myiframe' + "'" + ').style.display=' + "'" + 'none' + "'" + '; parent.document.getElementById(' + "'" + 'myiframe' + "'" + ').srcdoc=' + "'" + '' + "'" + ';" value=Close></input></body>');
}
//document.getElementById('myiframe').src=url;
//setTimeout(noif, 20000);
}
}
}
}
}

function doitthen() {
if (document.getElementById('myselcont').innerHTML.indexOf('/q/') != -1) {
var apiselsare=document.getElementById('myselcont').innerHTML.toLowerCase().split('/q/');
//alert('YEs:' + document.getElementById('myselcont').innerHTML);
if (eval('' + apiselsare.length) > 1) {
//alert('YES:' + document.getElementById('myselcont').innerHTML);
gapiref=apiselsare[1].replace('>','"').split('"')[0];
document.getElementById('igapiref').value=gapiprefix + gapiref;
document.getElementById('myselcont').innerHTML='';
}
}
if (gapiref != '') {
document.getElementById('myiframe').srcdoc=ssdata.replace('</h4>','  <a style="text-decoration:none;cursor:pointer;font-size:24px;" target=_blank title=Weather href="' + gapiprefix + gapiref + '">⛅</a></h4>');
} else {
document.getElementById('myiframe').srcdoc=ssdata; //zhr.responseText.replace("/" + seleval.split('/')[0] + '"', "/" + seleval.split('/')[0] + '" selected').replace('</body>', '<br><br><input type=button onclick="parent.document.getElementById(' + "'" + 'myiframe' + "'" + ').style.zIndex=-5; parent.document.getElementById(' + "'" + 'myiframe' + "'" + ').style.display=' + "'" + 'none' + "'" + '; parent.document.getElementById(' + "'" + 'myiframe' + "'" + ').srcdoc=' + "'" + '' + "'" + ';" value=Close></input></body>');
}
}

function ask() {
var eee=lastemail;
var suff='';
if (tablemode != '' && navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i)) {
suff=' Please note sometimes it is good to double click Email Table button for clipboard copy to register in email body section.';
}
if (numlines == 0) {
aohref=aohref.replace('%20%2e%2e%2e%20can%20copy%20in%20clipboard%20contents', '');
if (eee == '') { eee=prompt('Email address (best converted later at email into its Fixed Width font)?' + suff, lastemail); }
} else {
aohref=aohref.split('&body=')[0] + '&body=';
if (eee == '') { eee=prompt('Email address (and once in email paste content into its body section before clicking its Send button, as best seen with its Fixed Width font)?' + suff, lastemail); }
}
if (!eee) { eee=''; }
if (eee.indexOf('@') != -1) {
lastemail=eee;
var sufg=aohref.split('?')[1];
var gurl='mailto:' + eee + '?' + sufg;
ao.href=gurl;
}
aohref='mailto:?subject=Capitals%20of%20Countries%20%2e%2e%2e%20can%20copy%20in%20clipboard%20contents&body=';
return ao;
}

function smsask() {
var eee=lastsms;
if (numlines == 0) {
bohref=bohref.replace('%20%2e%2e%2e%20can%20copy%20in%20clipboard%20contents', '');
if (eee == '') { eee=prompt('SMS number (best converted later at SMS into its Fixed Width font)?', lastsms); }
} else {
bohref=bohref.split('&body=')[0] + '&body=';
if (eee == '') { eee=prompt('SMS number (and once in SMS paste content into its body section before clicking its Send button, as best seen with its Fixed Width font)?', lastsms); }
}
if (!eee) { eee=''; }
if (eee != '') {
lastsms=eee;
var sufg=bohref.split('?')[1];
var gurl='sms:' + eee + '?' + sufg;
bo.href=gurl;
}
bohref='sms:?subject=Capitals%20of%20Countries%20%2e%2e%2e%20can%20copy%20in%20clipboard%20contents&body=';
return bo;
}

function updatecountries(osino) {
var capval='';
var capvald='';
var ctyval='';
var ctyvald='';
var maxcap=-1;
var maxcty=-1;
var sin=document.getElementById('scapitals');
numlines=0;
for (var i=0; i<sin.options.length; i++) {
if (sin.options[i].selected) {
if (sin.options[i].value != '') {
if (maxcty < 0) {
maxcty=sin.options[i].value.length;
} else if (sin.options[i].value.length > maxcty) {
maxcty=sin.options[i].value.length;
}
if (maxcap < 0) {
maxcap=sin.options[i].innerText.length;
} else if (sin.options[i].innerText.length > maxcap) {
maxcap=sin.options[i].innerText.length;
}
ctyval+=ctyvald + sin.options[i].value;
ctyvald='|';
capval+=capvald + sin.options[i].innerText;
capvald='|';
}
}
}
document.getElementById('capitals').value=capval;
document.getElementById('countries').value=ctyval;
if (!osino || 1 == 1) {
if (capval != '' && ctyval != '') {
document.getElementById('mybemail').style.display='inline-block';
document.getElementById('mybsms').style.display='inline-block';
document.getElementById('mycemail').style.display='inline-block';
//document.getElementById('mycsms').style.display='inline-block';
maxcap=Math.floor(eval(eval(maxcap + 31) / 8)) * 8;
maxcty=Math.floor(eval(eval(maxcty + 15) / 8)) * 8;
var caps=capval.split('|');
var ctys=ctyval.split('|');
var repemail='';
repemail+=tabit('Capital City', maxcap, 'Country', maxcty);
repemail+=tabit('------------', maxcap, '-------', maxcty);
document.getElementById('myaemail').href=pref + '&body=' + encodeURIComponent(repemail);
for (var ij=0; ij<caps.length; ij++) {
repemail+=tabit(caps[ij], maxcap, ctys[ij], maxcty);
var pref=document.getElementById('myaemail').href.split('&body=')[0];
document.getElementById('myaemail').href=pref + '&body=' + encodeURIComponent(repemail);
aohref=aohref.split('&body=')[0] + '&body=' + encodeURIComponent(repemail);
if (numlines == 0 && document.getElementById('myaemail').href.length > 800) {
numlines=eval(1 + ij);
}
var prefs=document.getElementById('myasms').href.split('&body=')[0];
document.getElementById('myasms').href=prefs + '&body=' + encodeURIComponent(repemail);
bohref=bohref.split('&body=')[0] + '&body=' + encodeURIComponent(repemail);
}
if (tablemode != '') {
tabletocanvas(tablemode);
} else {
copytoclipboard(repemail);
}
}
}
}

function SelectText(element) { // thanks to https://stackoverflow.com/questions/27863617/is-it-possible-to-copy-a-canvas-image-to-the-clipboard
var doc = document;
if (doc.body.createTextRange) {
var range = document.body.createTextRange();
range.moveToElementText(element);
range.select();
} else if (window.getSelection) {
var selection = window.getSelection();
var range = document.createRange();
range.selectNodeContents(element);
selection.removeAllRanges();
selection.addRange(range);
}
}


function tabletocanvas(str) { // thanks to https://stackoverflow.com/questions/27863617/is-it-possible-to-copy-a-canvas-image-to-the-clipboard
document.getElementById('divaemail').innerHTML=str;
var acell;
var rect=document.getElementById('divaemail').getBoundingClientRect();
document.getElementById('divaemail').innerHTML+='<canvas id=mycanvas width=' + rect.width + ' height=' + rect.height + ' style="width:' + rect.width + 'px;height:' + rect.height + 'px;"></canvas>';
elem=document.getElementById('mycanvas');
context=elem.getContext("2d");
//context.strokeRect(0, 0, rect.width, rect.height);
var iths, ths=document.getElementsByTagName('th');
for (iths=0; iths<ths.length; iths++) {
if (ths[iths].innerHTML.indexOf('<') == -1) {
acell=ths[iths].getBoundingClientRect();
if (Math.round(eval(acell.top - rect.top)) >= 0) {
//alert('Rect.top=' + Math.round(rect.top) + ' and eval(acell.top - rect.top)=' + Math.round(eval(acell.top - rect.top)) + ' for text=' + ths[iths].innerHTML);
context.strokeStyle='#ff0000';
context.strokeRect(Math.round(eval(acell.left - rect.left)), Math.round(eval(acell.top - rect.top)), acell.width, acell.height);
context.strokeStyle='#000000';
context.font = cf;
context.strokeText(ths[iths].innerHTML, Math.round(eval(acell.left - rect.left + 5)), Math.round(eval(acell.top - rect.top + acell.height / 1.5)));
}
}
}
var itds, tds=document.getElementsByTagName('td');
for (itds=0; itds<tds.length; itds++) {
if (tds[itds].innerHTML.indexOf('<') == -1) {
acell=tds[itds].getBoundingClientRect();
if (Math.round(eval(acell.top - rect.top)) >= 0) {
//alert('rect.top=' + Math.round(rect.top) + ' and eval(acell.top - rect.top)=' + Math.round(eval(acell.top - rect.top)) + ' for text=' + tds[itds].innerHTML);
context.strokeStyle='#0000ff';
context.strokeRect(Math.round(eval(acell.left - rect.left)), Math.round(eval(acell.top - rect.top)), acell.width, acell.height);
context.strokeStyle='#000000';
context.font = cf;
context.strokeText(tds[itds].innerHTML, Math.round(eval(acell.left - rect.left + 5)), Math.round(eval(acell.top - rect.top + + acell.height / 1.5)));
}
}
}
selem=elem.toDataURL();
if (!navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i) || 1 == 1) {
tabletoclipboard(elem);
} else if (1 == 2) {
table_to_clipboard();
}
//setTimeout(table_to_clipboard, 2000);
//document.getElementById('divaemail').innerHTML='';
}


function preload() {
if (goThrough == 1) {
goThrough = 0;
img1 = document.createElement('img');
img1.onload = function() { goThrough=2; };
img1.src = selem;
}
if (goThrough == 2) {
goThrough = 0;
img2 = document.createElement('img');
img2.onload = function() { goThrough=3; };
img2.src = selem;
}
if (goThrough < 3) {
preload();
}
}


function table_to_clipboard() { // thanks to https://stackoverflow.com/questions/27863617/is-it-possible-to-copy-a-canvas-image-to-the-clipboard

//goThrough = 1;
//preload();

var img = document.createElement('img');

img.onload = function() {
var div = document.createElement('div');
div.contentEditable = true;
div.appendChild(img);
document.body.appendChild(div);

// do copy
SelectText(div);
document.execCommand('Copy');
document.body.removeChild(div);
//alert(675);
setTimeout(athn, 1000); //top.location.href=ao.href; //document.getElementById('myaemail').click(); //top.location.href=ao.href;
};

img.src = selem; //canvas.toDataURL();

}

function athn() {
if (tablemode != '') {
top.location.href=ao.href; //document.getElementById('myaemail').click(); //top.location.href=ao.href;
} else {
ao.click();
}
document.getElementById('divaemail').innerHTML='';
}

function tabletoclipboard(canvas) { // thanks to https://stackoverflow.com/questions/27863617/is-it-possible-to-copy-a-canvas-image-to-the-clipboard
img5 = document.createElement('img');

if (1 == 2) {
img5.onload = function() {
div5 = document.createElement('div');
div5.contentEditable = true;
div5.appendChild(img5);
document.body.appendChild(div5);

// do copy
SelectText(div5);
document.execCommand('Copy');
document.body.removeChild(div5);
setTimeout(athn, 1000); //top.location.href=ao.href; //document.getElementById('myaemail').click(); //top.location.href=ao.href;
};
}

img5.src = canvas.toDataURL();

if (2 == 2) {
div5 = document.createElement('div');
div5.contentEditable = true;
div5.appendChild(img5);
document.body.appendChild(div5);

// do copy
SelectText(div5);
document.execCommand('Copy');
document.body.removeChild(div5);
}
}

function copytoclipboard(str) { // thanks to https://hackernoon.com/copying-text-to-clipboard-with-javascript-df4d4988697f
var el = document.createElement('textarea');
el.value = str;
el.setAttribute('readonly', '');
el.style.position = 'absolute';
el.style.left = '-9999px';
document.body.appendChild(el);
el.select();
document.execCommand('copy');
document.body.removeChild(el);
}

function tabit(inleft, inleftl, inright, inrightl) {
var retrec='';
var ift=Math.floor(eval(eval(inleft.length + 8) / 8)) * 8;
if (tablemode.indexOf('</table>') != -1) {
if (inleft.indexOf('----') == -1) {
if (tablemode.indexOf('<th') == -1 && tablemode.indexOf('<td') == -1) {
tablemode=tablemode.replace('</table>','<tr><th>' + inleft + '</th><th>' + inright + '</th></tr></table>');
} else {
tablemode=tablemode.replace('</table>','<tr><td>' + inleft + '</td><td>' + inright + '</td></tr></table>');
}
retrec=tablemode;
}
} else {
if (inleft.length < inleftl) {
while (inleft.length < ift) {
inleft+=' '; //inleft+=String.fromCharCode(9);
}
while (ift < inleftl) {
inleft+=' '; //String.fromCharCode(9);
ift+=8;
}
}
retrec+=inleft;
ift=Math.floor(eval(eval(inright.length + 8) / 8)) * 8;
if (inright.length < inrightl) {
while (inright.length < ift) {
inright+=' '; //inright+=String.fromCharCode(9);
}
while (ift < inrightl) {
inleft+=' '; //String.fromCharCode(9);
ift+=8;
}
}
retrec+=inright;
retrec+=String.fromCharCode(10);
}
return retrec;
}

function checkforreport() {
var divcont='';
var dcaps, dctys, idis;
document.getElementById('myform').action=document.URL.split('#')[0].split('?')[0].replace('http:','https:').replace('//rjmprogramming.com.au','//www.rjmprogramming.com.au');
//dragElement(document.getElementById("myiframe")); // thanks to https://www.w3schools.com/howto/howto_js_draggable.asp

if (getcapitals == 'localStorage') {
if (window.localStorage) {
getcapitals=decodeURIComponent(localStorage.getItem('wls_vs_php_capitals')).replace(/\+/g,' ');
localStorage.removeItem('wls_vs_php_capitals');
} else {
getcapitals='';
}
} else if (getcapitals == 'sessionStorage') {
document.getElementById('smode').value=getcapitals;
datamode=getcapitals;
if (window.sessionStorage) {
getcapitals=decodeURIComponent(sessionStorage.getItem('wls_vs_php_capitals')).replace(/\+/g,' ');
} else {
getcapitals='';
}
} else if (getcapitals == '' && window.sessionStorage) {
getcapitals=decodeURIComponent(('' + sessionStorage.getItem('wls_vs_php_capitals')).replace(/^null$/g,'')).replace(/\+/g,' ');
if (getcapitals != '') {
document.getElementById('smode').value='sessionStorage';
datamode='sessionStorage';
}
}
if (getcountries == 'localStorage') {
if (window.localStorage) {
getcountries=decodeURIComponent(localStorage.getItem('wls_vs_php_countries')).replace(/\+/g,' ');
if (getcapitals.replace('localStorage','') != '' && getcountries.replace('localStorage','') != '') { document.getElementById('myh1').innerHTML+=' <font size=1>... yes, it was needed</font>'; }
localStorage.removeItem('wls_vs_php_countries');
} else {
getcountries='';
}
} else if (getcountries == 'sessionStorage') {
if (window.sessionStorage) {
getcountries=decodeURIComponent(sessionStorage.getItem('wls_vs_php_countries')).replace(/\+/g,' ');
if (getcapitals.replace('sessionStorage','') != '' && getcountries.replace('sessionStorage','') != '') { document.getElementById('myh1').innerHTML+=' <font size=1>... yes, it was needed</font>'; }
} else {
getcountries='';
}
} else if (getcountries == '' && document.getElementById('smode').value == 'sessionStorage' && window.sessionStorage) {
getcountries=decodeURIComponent(('' + sessionStorage.getItem('wls_vs_php_countries')).replace(/^null$/g,'')).replace(/\+/g,' ');
if (getcountries != '') {
document.getElementById('smode').value='sessionStorage';
datamode='sessionStorage';
}
}
if (getcapitals != '' && getcountries != '') {
document.getElementById('myrepsb').value='Clickable Report ...';
document.getElementById('myrepsb').title='Click/touch for Timezone and Wikipedia information';
divcont='<table title="Click/touch for Timezone and Wikipedia information" border=5 style="width:95%;vertical-align:top;background-color:white;"><tr style=background-color:#f0f0f0;"><th>Capital</th><th>Country</th></tr></table>';
dcaps=getcapitals.split('|');
dctys=getcountries.split('|');
for (idis=0; idis<dcaps.length; idis++) {
divcont=divcont.replace('</table>', '<tr style=cursor:pointer; title="Click to try to find Timezone and Wikipedia information, if found" onclick="ajaxit(this.innerHTML);"><td contenteditable="true">' + dcaps[idis] + '</td><td>' + dctys[idis] + '</td></tr></table>');
}
document.getElementById('dreport').innerHTML=divcont;
}
document.getElementById('smode').value=datamode;
readyitforsort('scapitals');
}

function analyze() {
var purl=document.URL.split('#')[0].split('?')[0].replace('http:','https:').replace('//rjmprogramming.com.au','//www.rjmprogramming.com.au') + '?capitals=' + encodeURIComponent(document.getElementById('capitals').value) + '&countries=' + encodeURIComponent(document.getElementById('countries').value);
if (purl.length > 800) {
if (phpexists) {
document.getElementById('myform').method='POST';
document.getElementById('myform').action='./wls_vs_php.php';
} else if (datamode == 'localStorage' && window.localStorage) {
localStorage.setItem('wls_vs_php_countries', encodeURIComponent(document.getElementById('countries').value));
localStorage.setItem('wls_vs_php_capitals', encodeURIComponent(document.getElementById('capitals').value));
document.getElementById('capitals').value='localStorage';
document.getElementById('countries').value='localStorage';
location.href=document.URL.split('#')[0].split('?')[0].replace('http:','https:').replace('//rjmprogramming.com.au','//www.rjmprogramming.com.au') + '?capitals=' + encodeURIComponent(document.getElementById('capitals').value) + '&countries=' + encodeURIComponent(document.getElementById('countries').value);
return false;
} else if (datamode == 'sessionStorage' && window.sessionStorage) {
sessionStorage.setItem('wls_vs_php_countries', encodeURIComponent(document.getElementById('countries').value));
sessionStorage.setItem('wls_vs_php_capitals', encodeURIComponent(document.getElementById('capitals').value));
document.getElementById('capitals').value='sessionStorage';
document.getElementById('countries').value='sessionStorage';
location.href=document.URL.split('#')[0].split('?')[0].replace('http:','https:').replace('//rjmprogramming.com.au','//www.rjmprogramming.com.au') + '?capitals=' + encodeURIComponent(document.getElementById('capitals').value) + '&countries=' + encodeURIComponent(document.getElementById('countries').value);
return false;
}
}
return true;
}

function huhpup(iois) {
if (iois != null) {
var aconto = (iois.contentWindow || iois.contentDocument);
if (aconto != null) {
if (aconto.document) { aconto = aconto.document; }
if (aconto.body != null) {
if (aconto.body.innerHTML.toLowerCase().indexOf('<select ') == -1) {
phpexists=false;
} else {
phpexists=true;
}
}
}
}
}

function prewselit(iois) {
wiois=iois;
setTimeout(wselit, 2000);
}

function wselit(iois) { //iois) {
var apiselsare=[];
//iois=wiois; //document.getElementById('weatheri');
if (('' + iois.src).replace(document.URL,'') != '') {
if (iois != null) {
//gapiref='';
//alert('where ' + ('' + iois.src));
//document.getElementById('igapiref').value='';
var waconto = (iois.contentWindow || iois.contentDocument);
if (waconto != null) {
if (waconto.document) { waconto = waconto.document; }
if (waconto.body != null) {
//alert('there' + waconto.body.innerHTML);
if (waconto.body.innerHTML.toLowerCase().indexOf('<option ') != -1) {
//alert('here');
var selsare=waconto.body.innerHTML.toLowerCase().split('<option ');
//alert('' + selsare.length);
if (eval('' + selsare.length) >= 2) {
apiselsare=waconto.body.innerHTML.toLowerCase().split('<option ')[1].split('/q/');
if (eval('' + apiselsare.length) > 1) {
gapiref=apiselsare[1].replace('>','"').split('"')[0];
document.getElementById('igapiref').value=gapiprefix + gapiref;
//alert('no:' + gapiprefix + gapiref);
} else if (1 == 11) {
alert('yes:' + document.getElementById('myselcont').innerHTML);
}
}
} else {
gapiref='';
//alert('where ' + ('' + iois.src));
document.getElementById('igapiref').value='';
//alert('Yes:' + document.getElementById('myselcont').innerHTML);
apiselsare=document.getElementById('myselcont').innerHTML.toLowerCase().split('/q/');
//alert('YEs:' + document.getElementById('myselcont').innerHTML);
if (eval('' + apiselsare.length) > 1) {
//alert('YES:' + document.getElementById('myselcont').innerHTML);
gapiref=apiselsare[1].replace('>','"').split('"')[0];
document.getElementById('igapiref').value=gapiprefix + gapiref;
//alert('No:' + gapiprefix + gapiref);
}
}
}
}
}
}
}

function selit(iois) {
var huhsss, rectz;
if (('' + iois.srcdoc) != '' || ('' + iois.src).replace(document.URL,'') != '') {
if (iois != null) {
var aconto = (iois.contentWindow || iois.contentDocument);
if (aconto != null) {
if (aconto.document) { aconto = aconto.document; }
if (aconto.body != null) {
if (aconto.body.innerHTML.toLowerCase().indexOf('<select ') != -1) {
//aconto.getElementById('sele').value=seleval;
var sp='/' + seleval.split('/')[0];
var spalt='/' + seleval.split('/')[eval(-1 + seleval.split('/').length)];
if (tzp.indexOf(sp + '"') != -1) {
huhsss=tzp.split(sp)[0].split('"')[eval(-1 + tzp.split(sp)[0].split('"').length)];
aconto.getElementById('tzi').src=aconto.getElementById('tzi').src.split('?')[0] + '?tzexact=' + encodeURIComponent(huhsss + sp) + '&tznickname=' + encodeURIComponent(sp.substring(1).replace(/_/g,' '));
aconto.getElementById('sele').value=huhsss + sp;
} else if (tzp.indexOf(spalt + '"') != -1) {
sp=spalt;
huhsss=tzp.split(sp)[0].split('"')[eval(-1 + tzp.split(sp)[0].split('"').length)];
aconto.getElementById('tzi').src=aconto.getElementById('tzi').src.split('?')[0] + '?tzexact=' + encodeURIComponent(huhsss + sp) + '&tznickname=' + encodeURIComponent(sp.substring(1).replace(/_/g,' '));
aconto.getElementById('sele').value=huhsss + sp;
} else if (tzp.indexOf(spalt.split('_')[0].split(' ')[0] + '"') != -1) {
sp=spalt.split('_')[0].split(' ')[0];
huhsss=tzp.split(sp)[0].split('"')[eval(-1 + tzp.split(sp)[0].split('"').length)];
aconto.getElementById('tzi').src=aconto.getElementById('tzi').src.split('?')[0] + '?tzexact=' + encodeURIComponent(huhsss + sp) + '&tznickname=' + encodeURIComponent(sp.substring(1).replace(/_/g,' '));
aconto.getElementById('sele').value=huhsss + sp;
} else if (gapiref != '') { //document.getElementById('myselcont').innerHTML.indexOf('/q/') != -1) {
//alert(1);
rectz=iois.getBoundingClientRect();
//alert(11);
window.open(gapiprefix + gapiref, '_blank', 'top=' + rectz.top + ',left=' + rectz.top + ',width=' + + rectz.width + ',height=' + + rectz.height);
} else {
//alert(111);
rectz=iois.getBoundingClientRect();
//alert(1111);
window.open('//en.wikipedia.org/wiki/' + placeis.replace(/\ /g,'_'), '_blank', 'top=' + rectz.top + ',left=' + rectz.top + ',width=' + + rectz.width + ',height=' + + rectz.height);
}
//aconto.designMode = "on";
//aconto.execCommand('enableObjectResizing');
}
}
}
}
}
}

</script>
</head>
<body onload="ajaxit(document.URL.split('.htm')[0] + '.php'); checkforreport();">
<h1 id=myh1>Window <select id=smode onchange='datamode=this.value;'><option value=localStorage>localStorage</option><option value=sessionStorage>sessionStorage</option></select> as Needed</h1>
<h3>RJM Programming - December, 2019</h3>
<form onsubmit='return analyze();' id='myform' action='./wls_vs_php.htm' method='GET'>
<input type=hidden name=countries id=countries value=''></input><input type=hidden name=capitals id=capitals value=''></input>
<table style='width:99%;height:800px;' border=20>
<tr style='height:40px;background-color:lightgray;'><th>Capitals <select onchange=" if (this.value.length == 0) { document.getElementById('scapitals').innerHTML=firstopt + wasopts; } else { document.getElementById('scapitals').innerHTML=firstopt + restopts; } "><option value=''></option><option value=sort>Sorted Alphabetically</option></select></th><th title='Start again' onclick="location.href=document.URL.split('#')[0].split('?')[0];">Countries Report</th></tr>
<tr><td style='background-color:%f7f7f7;text-align:center;'><select onfocusout="tablemode = ''; updatecountries(null);" style='margin-top:0px;margin-left:0px;vertical-align:top;height:100vh;background-color:lightblue;' id=scapitals multiple>
<option onclick="updatecountries(this);" value=''>Please select Capital(s) (of Countries) of interest below to receive a report via button ...</option>
<option onclick="updatecountries(this);" value="Afghanistan">Kabul</option>
<option onclick="updatecountries(this);" value="Albania">Tirane</option>
<option onclick="updatecountries(this);" value="Algeria">Algiers</option>
<option onclick="updatecountries(this);" value="Andorra">Andorra la Vella</option>
<option onclick="updatecountries(this);" value="Angola">Luanda</option>
<option onclick="updatecountries(this);" value="Antigua and Barbuda">Saint John's</option>
<option onclick="updatecountries(this);" value="Argentina">Buenos Aires</option>
<option onclick="updatecountries(this);" value="Armenia">Yerevan</option>
<option onclick="updatecountries(this);" value="Australia">Canberra</option>
<option onclick="updatecountries(this);" value="Austria">Vienna</option>
<option onclick="updatecountries(this);" value="Azerbaijan">Baku</option>
<option onclick="updatecountries(this);" value="Bahamas">Nassau</option>
<option onclick="updatecountries(this);" value="Bahrain">Manama</option>
<option onclick="updatecountries(this);" value="Bangladesh">Dhaka</option>
<option onclick="updatecountries(this);" value="Barbados">Bridgetown</option>
<option onclick="updatecountries(this);" value="Belarus">Minsk</option>
<option onclick="updatecountries(this);" value="Belgium">Brussels</option>
<option onclick="updatecountries(this);" value="Belize">Belmopan</option>
<option onclick="updatecountries(this);" value="Benin">Porto-Novo</option>
<option onclick="updatecountries(this);" value="Bhutan">Thimphu</option>
<option onclick="updatecountries(this);" value="Bolivia">La Paz (administrative), Sucre (judicial)</option>
<option onclick="updatecountries(this);" value="Bosnia and Herzegovina">Sarajevo</option>
<option onclick="updatecountries(this);" value="Botswana">Gaborone</option>
<option onclick="updatecountries(this);" value="Brazil">Brasilia</option>
<option onclick="updatecountries(this);" value="Brunei">Bandar Seri Begawan</option>
<option onclick="updatecountries(this);" value="Bulgaria">Sofia</option>
<option onclick="updatecountries(this);" value="Burkina Faso">Ouagadougou</option>
<option onclick="updatecountries(this);" value="Burundi">Bujumbura</option>
<option onclick="updatecountries(this);" value="Cabo Verde">Praia</option>
<option onclick="updatecountries(this);" value="Cambodia">Phnom Penh</option>
<option onclick="updatecountries(this);" value="Cameroon">Yaounde</option>
<option onclick="updatecountries(this);" value="Canada">Ottawa</option>
<option onclick="updatecountries(this);" value="Central African Republic">Bangui</option>
<option onclick="updatecountries(this);" value="Chad">N'Djamena</option>
<option onclick="updatecountries(this);" value="Chile">Santiago</option>
<option onclick="updatecountries(this);" value="China">Beijing</option>
<option onclick="updatecountries(this);" value="Colombia">Bogotá</option>
<option onclick="updatecountries(this);" value="Comoros">Moroni</option>
<option onclick="updatecountries(this);" value="Democratic Republic of the Congo">Kinshasa</option>
<option onclick="updatecountries(this);" value="Republic of the Congo">Brazzaville</option>
<option onclick="updatecountries(this);" value="Costa Rica">San Jose</option>
<option onclick="updatecountries(this);" value="Cote d'Ivoire">Yamoussoukro</option>
<option onclick="updatecountries(this);" value="Croatia">Zagreb</option>
<option onclick="updatecountries(this);" value="Cuba">Havana</option>
<option onclick="updatecountries(this);" value="Cyprus">Nicosia</option>
<option onclick="updatecountries(this);" value="Czech Republic">Prague</option>
<option onclick="updatecountries(this);" value="Denmark">Copenhagen</option>
<option onclick="updatecountries(this);" value="Djibouti">Djibouti (city)</option>
<option onclick="updatecountries(this);" value="Dominica">Roseau</option>
<option onclick="updatecountries(this);" value="Dominican Republic">Santo Domingo</option>
<option onclick="updatecountries(this);" value="Ecuador">Quito</option>
<option onclick="updatecountries(this);" value="Egypt">Cairo</option>
<option onclick="updatecountries(this);" value="El Salvador">San Salvador</option>
<option onclick="updatecountries(this);" value="Equatorial Guinea">Malabo</option>
<option onclick="updatecountries(this);" value="Eritrea">Asmara</option>
<option onclick="updatecountries(this);" value="Estonia">Tallinn</option>
<option onclick="updatecountries(this);" value="Ethiopia">Addis Ababa</option>
<option onclick="updatecountries(this);" value="Fiji">Suva</option>
<option onclick="updatecountries(this);" value="Finland">Helsinki</option>
<option onclick="updatecountries(this);" value="France">Paris</option>
<option onclick="updatecountries(this);" value="Gabon">Libreville</option>
<option onclick="updatecountries(this);" value="Gambia">Banjul</option>
<option onclick="updatecountries(this);" value="Georgia">Tbilisi</option>
<option onclick="updatecountries(this);" value="Germany">Berlin</option>
<option onclick="updatecountries(this);" value="Ghana">Accra</option>
<option onclick="updatecountries(this);" value="Greece">Athens</option>
<option onclick="updatecountries(this);" value="Grenada">Saint George's</option>
<option onclick="updatecountries(this);" value="Guatemala">Guatemala City</option>
<option onclick="updatecountries(this);" value="Guinea">Conakry</option>
<option onclick="updatecountries(this);" value="Guinea-Bissau">Bissau</option>
<option onclick="updatecountries(this);" value="Guyana">Georgetown</option>
<option onclick="updatecountries(this);" value="Haiti">Port-au-Prince</option>
<option onclick="updatecountries(this);" value="Honduras">Tegucigalpa</option>
<option onclick="updatecountries(this);" value="Hungary">Budapest</option>
<option onclick="updatecountries(this);" value="Iceland">Reykjavik</option>
<option onclick="updatecountries(this);" value="India">New Delhi</option>
<option onclick="updatecountries(this);" value="Indonesia">Jakarta</option>
<option onclick="updatecountries(this);" value="Iran">Tehran</option>
<option onclick="updatecountries(this);" value="Iraq">Baghdad</option>
<option onclick="updatecountries(this);" value="Ireland">Dublin</option>
<option onclick="updatecountries(this);" value="Israel">Jerusalem</option>
<option onclick="updatecountries(this);" value="Italy">Rome</option>
<option onclick="updatecountries(this);" value="Jamaica">Kingston</option>
<option onclick="updatecountries(this);" value="Japan">Tokyo</option>
<option onclick="updatecountries(this);" value="Jordan">Amman</option>
<option onclick="updatecountries(this);" value="Kazakhstan">Astana</option>
<option onclick="updatecountries(this);" value="Kenya">Nairobi</option>
<option onclick="updatecountries(this);" value="Kiribati">South Tarawa</option>
<option onclick="updatecountries(this);" value="Kosovo">Pristina</option>
<option onclick="updatecountries(this);" value="Kuwait">Kuwait City</option>
<option onclick="updatecountries(this);" value="Kyrgyzstan">Bishkek</option>
<option onclick="updatecountries(this);" value="Laos">Vientiane</option>
<option onclick="updatecountries(this);" value="Latvia">Riga</option>
<option onclick="updatecountries(this);" value="Lebanon">Beirut</option>
<option onclick="updatecountries(this);" value="Lesotho">Maseru</option>
<option onclick="updatecountries(this);" value="Liberia">Monrovia</option>
<option onclick="updatecountries(this);" value="Libya">Tripoli</option>
<option onclick="updatecountries(this);" value="Liechtenstein">Vaduz</option>
<option onclick="updatecountries(this);" value="Lithuania">Vilnius</option>
<option onclick="updatecountries(this);" value="Luxembourg">Luxembourg</option>
<option onclick="updatecountries(this);" value="Macedonia">Skopje</option>
<option onclick="updatecountries(this);" value="Madagascar">Antananarivo</option>
<option onclick="updatecountries(this);" value="Malawi">Lilongwe</option>
<option onclick="updatecountries(this);" value="Malaysia">Kuala Lumpur</option>
<option onclick="updatecountries(this);" value="Maldives">Male</option>
<option onclick="updatecountries(this);" value="Mali">Bamako</option>
<option onclick="updatecountries(this);" value="Malta">Valletta</option>
<option onclick="updatecountries(this);" value="Marshall Islands">Majuro</option>
<option onclick="updatecountries(this);" value="Mauritania">Nouakchott</option>
<option onclick="updatecountries(this);" value="Mauritius">Port Louis</option>
<option onclick="updatecountries(this);" value="Mexico">Mexico City</option>
<option onclick="updatecountries(this);" value="Micronesia">Palikir</option>
<option onclick="updatecountries(this);" value="Moldova">Chisinau</option>
<option onclick="updatecountries(this);" value="Monaco">Monaco</option>
<option onclick="updatecountries(this);" value="Mongolia">Ulaanbaatar</option>
<option onclick="updatecountries(this);" value="Montenegro">Podgorica</option>
<option onclick="updatecountries(this);" value="Morocco">Rabat</option>
<option onclick="updatecountries(this);" value="Mozambique">Maputo</option>
<option onclick="updatecountries(this);" value="Myanmar (Burma)">Naypyidaw</option>
<option onclick="updatecountries(this);" value="Namibia">Windhoek</option>
<option onclick="updatecountries(this);" value="Nauru">Yaren District</option>
<option onclick="updatecountries(this);" value="Nepal">Kathmandu</option>
<option onclick="updatecountries(this);" value="Netherlands">Amsterdam</option>
<option onclick="updatecountries(this);" value="New Zealand">Wellington</option>
<option onclick="updatecountries(this);" value="Nicaragua">Managua</option>
<option onclick="updatecountries(this);" value="Niger">Niamey</option>
<option onclick="updatecountries(this);" value="Nigeria">Abuja</option>
<option onclick="updatecountries(this);" value="North Korea">Pyongyang</option>
<option onclick="updatecountries(this);" value="Norway">Oslo</option>
<option onclick="updatecountries(this);" value="Oman">Muscat</option>
<option onclick="updatecountries(this);" value="Pakistan">Islamabad</option>
<option onclick="updatecountries(this);" value="Palau">Ngerulmud</option>
<option onclick="updatecountries(this);" value="Palestine">Ramallah</option>
<option onclick="updatecountries(this);" value="Panama">Panama City</option>
<option onclick="updatecountries(this);" value="Papua New Guinea">Port Moresby</option>
<option onclick="updatecountries(this);" value="Paraguay">Asunción</option>
<option onclick="updatecountries(this);" value="Peru">Lima</option>
<option onclick="updatecountries(this);" value="Philippines">Manila</option>
<option onclick="updatecountries(this);" value="Poland">Warsaw</option>
<option onclick="updatecountries(this);" value="Portugal">Lisbon</option>
<option onclick="updatecountries(this);" value="Qatar">Doha</option>
<option onclick="updatecountries(this);" value="Romania">Bucharest</option>
<option onclick="updatecountries(this);" value="Russia">Moscow</option>
<option onclick="updatecountries(this);" value="Rwanda">Kigali</option>
<option onclick="updatecountries(this);" value="Saint Kitts and Nevis">Basseterre</option>
<option onclick="updatecountries(this);" value="Saint Lucia">Castries</option>
<option onclick="updatecountries(this);" value="Saint Vincent and the Grenadines">Kingstown</option>
<option onclick="updatecountries(this);" value="Samoa">Apia</option>
<option onclick="updatecountries(this);" value="San Marino">San Marino</option>
<option onclick="updatecountries(this);" value="Sao Tome and Principe">São Tomé</option>
<option onclick="updatecountries(this);" value="Saudi Arabia">Riyadh</option>
<option onclick="updatecountries(this);" value="Senegal">Dakar</option>
<option onclick="updatecountries(this);" value="Serbia">Belgrade</option>
<option onclick="updatecountries(this);" value="Seychelles">Victoria</option>
<option onclick="updatecountries(this);" value="Sierra Leone">Freetown</option>
<option onclick="updatecountries(this);" value="Singapore">Singapore</option>
<option onclick="updatecountries(this);" value="Slovakia">Bratislava</option>
<option onclick="updatecountries(this);" value="Slovenia">Ljubljana</option>
<option onclick="updatecountries(this);" value="Solomon Islands">Honiara</option>
<option onclick="updatecountries(this);" value="Somalia">Mogadishu</option>
<option onclick="updatecountries(this);" value="South Africa">Pretoria (administrative), Cape Town (legislative), Bloemfontein (judicial)</option>
<option onclick="updatecountries(this);" value="South Korea">Seoul</option>
<option onclick="updatecountries(this);" value="South Sudan">Juba</option>
<option onclick="updatecountries(this);" value="Spain">Madrid</option>
<option onclick="updatecountries(this);" value="Sri Lanka">Sri Jayawardenepura Kotte</option>
<option onclick="updatecountries(this);" value="Sudan">Khartoum</option>
<option onclick="updatecountries(this);" value="Suriname">Paramaribo</option>
<option onclick="updatecountries(this);" value="Swaziland">Mbabane</option>
<option onclick="updatecountries(this);" value="Sweden">Stockholm</option>
<option onclick="updatecountries(this);" value="Switzerland">Bern</option>
<option onclick="updatecountries(this);" value="Syria">Damascus</option>
<option onclick="updatecountries(this);" value="Taiwan">Taipei</option>
<option onclick="updatecountries(this);" value="Tajikistan">Dushanbe</option>
<option onclick="updatecountries(this);" value="Tanzania">Dodoma</option>
<option onclick="updatecountries(this);" value="Thailand">Bangkok</option>
<option onclick="updatecountries(this);" value="Timor-Leste">Dili</option>
<option onclick="updatecountries(this);" value="Togo">Lomé</option>
<option onclick="updatecountries(this);" value="Tonga">Nukuʻalofa</option>
<option onclick="updatecountries(this);" value="Trinidad and Tobago">Port of Spain</option>
<option onclick="updatecountries(this);" value="Tunisia">Tunis</option>
<option onclick="updatecountries(this);" value="Turkey">Ankara</option>
<option onclick="updatecountries(this);" value="Turkmenistan">Ashgabat</option>
<option onclick="updatecountries(this);" value="Tuvalu">Funafuti</option>
<option onclick="updatecountries(this);" value="Uganda">Kampala</option>
<option onclick="updatecountries(this);" value="Ukraine">Kyiv</option>
<option onclick="updatecountries(this);" value="United Arab Emirates">Abu Dhabi</option>
<option onclick="updatecountries(this);" value="United Kingdom">London</option>
<option onclick="updatecountries(this);" value="United States of America">Washington, D.C.</option>
<option onclick="updatecountries(this);" value="Uruguay">Montevideo</option>
<option onclick="updatecountries(this);" value="Uzbekistan">Tashkent</option>
<option onclick="updatecountries(this);" value="Vanuatu">Port Vila</option>
<option onclick="updatecountries(this);" value="Vatican City (Holy See)">Vatican City</option>
<option onclick="updatecountries(this);" value="Venezuela">Caracas</option>
<option onclick="updatecountries(this);" value="Vietnam">Hanoi</option>
<option onclick="updatecountries(this);" value="Yemen">Sana'a</option>
<option onclick="updatecountries(this);" value="Zambia">Lusaka</option>
<option onclick="updatecountries(this);" value="Zimbabwe">Harare</option>
</select></td><td style="vertical-align:top;background-color:lightgreen;"><input id=myrepsb style=background-color:yellow;vertical-align:top; type=submit value='Report ...'></input><br><input onclick="ao=document.getElementById('myaemail'); ask(); if (navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i)) { table_to_clipboard(); if (1 == 2) { top.location.href=ao.href; } } else { ao.click(); }" id=mybemail style=background-color:yellow;vertical-align:top;display:none; type=button value='Email Columns ...'></input> <input onclick="tablemode='<table cellpadding=60 cellspacing=10 id=tableemail border=5></table>'; updatecountries(null); document.getElementById('mybemail').click();" id=mycemail style=display:none; type=button value='Email Table ...'></input><br><input onclick="bo=document.getElementById('myasms'); smsask(); if (navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i)) { top.location.href=bo.href; } else { bo.click(); } " id=mybsms style=background-color:yellow;vertical-align:top;display:none; type=button value='SMS Columns ...'></input> <input onclick="tablemode='<table cellpadding=60 cellspacing=10 id=tablesms border=5></table>'; updatecountries(null); document.getElementById('mybsms').click();" id=mycsms style=display:none; type=button value='SMS Table ...'></input><br><div id=dreport></div></td></tr>
</table>
</form>
<!--iframe style='display:none;' src='./wls_vs_php.php' onload='huhpup(this);'></iframe-->
<a id=myaemail href='mailto:?subject=Capitals%20of%20Countries%20%2e%2e%2e%20can%20copy%20in%20clipboard%20contents&body=' style='display:none;'>Email</a>
<a id=myasms href='sms:?subject=Capitals%20of%20Countries%20%2e%2e%2e%20can%20copy%20in%20clipboard%20contents&body=' style='display:none;'>SMS</a>
<div id=divaemail></div>
<div id=dmyiframe style='display:none;transform:scale(0.7);position:absolute;top:0px;left:0px;width:640px;height:1000px;z-index:-5;'><iframe onload=selit(this); style='display:none;position:absolute;top:0px;left:0px;width:640px;height:1000px;width:100%;height:100%;z-index:-5;' srcdoc='' id=myiframe></iframe></div>
<input id=igapiref type=hidden value=''></input><div id=dweatheri></div><!--iframe id=weatheri onload=wselit(this); style='display:none;' src=''></iframe-->
<div id='jsondata' style='display:none;'></div>
<div id='topjsondata' style='display:none;'></div>
<select id='myselcont' style='display:none;'></select>
</body>
</html>