<html>
<head>
<title>Experimental Drag and Drop - RJM Programming - July, 2023 ... thanks to https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/setData</title>
<style>
th.source {
border: 1px solid transparent;
}
</style>
<script type=text/javascript>
var playerb='Black';
var playerw='White';
var clonedata='', clonedatatwo='', pos3=0, pos4=0, secs=0, score=0, tdid='', tdcheck=true;
var tdnum=location.search.split('tdnum=')[1] ? eval(location.search.split('tdnum=')[1].split('&')[0]) : 9;
var across=location.search.split('across=')[1] ? eval(location.search.split('across=')[1].split('&')[0]) : 3;
var twosubsfrom=['',''], twosubsto=['',''], onenewmove=[];
var trad='', idone='', idtwo='', gval='', idzero='';
var yesnod=true, iyesnod=0, previyesnod=0;
var amove='';
if (document.URL.indexOf('traditional=') != -1) {
trad=decodeURIComponent(document.URL.split('traditional=')[1].split('&')[0]);
}
if (document.URL.indexOf('move=') != -1) {
amove=decodeURIComponent(document.URL.split('move=')[1].split('&')[0]);
}
var movefrom=-1, moveto=-1, nextmove=-1, mirroring=false;
var dragh=false;
var sdone=false;
var sourceid='sou' + 'rce';
var shuffle=('' + location.hash + ' ' + location.search + ' ').split('shuffle=')[1] ? true : false;
var yourblurb=location.search.split('yourblurb=')[1] ? decodeURIComponent('' + location.hash + ' ' + location.search.split('yourblurb=')[1].split('&')[0]).replace(/\+/g,' ').replace(/\ \ \ /g,' + ') : '';
var sourcenum=location.search.split('sourcenum=')[1] ? Math.floor(eval(('' + location.search.split('sourcenum=')[1].split('&')[0]) + '.0')) : 1;
if ((document.URL.split('#')[0] + '&').indexOf('sourcenum=&') != -1 && sourcenum == 1) { sourcenum=0; }
var originalsn=sourcenum;
var originalsh=shuffle;
var origsnc='';
var bdone=false;
var lastbco=null;
var lastoh='', prevlastoh='', prevlastih='', prevtih='', lohfulloh='', newlohfulloh='';
var lastih='', loh='', lohoh='';
var lastevid='', bcklastid='';
var lastid='';
var prefx='th';
var itisthiscmove='', lastitisthiscmove=' ';
var fauxmove='';
if (document.URL.indexOf('draughts=') != -1) {
fauxmove=decodeURIComponent(document.URL.split('draughts=')[1].split('&')[0]);
if (fauxmove.trim() != '') {
itisthiscmove=fauxmove.substring(0,1).replace('w','B').replace('b','W').toLowerCase();
if (itisthiscmove == 'b') {
setTimeout(function(){ consolelog(playerb + ', it is your turn. '); }, 3000);
} else if (itisthiscmove == 'w') {
setTimeout(function(){ consolelog(playerw + ', it is your turn. '); }, 3000);
}
}
}
var cpa=['bK','wK','bQ','wQ','bR1','wR1','bR2','wR2','bB1','wB1','bB2','wB2','bK1','wK1','bK2','wK2','bP1','wP1','bP2','wP2','bP3','wP3','bP4','wP4','bP5','wP5','bP6','wP6','bP7','wP7','bP8','wP8'];
var staidmap=[4,60,3,59,0,56,7,63, 2,58,5,61, 1,57,6,62, 8,48,9,49,10,50,11,51,12,52,13,53,14,54,15,55];

if (document.URL.indexOf('draughts') != -1) {
cpa=['bB1','wB1','bB2','wB2','bB3','wB3','bB4','wB4','bB5','wB5','bB6','wB6','bB7','wB7','bB8','wB8','bB9','wB9','bBv','wBv','bBu','wBu','bBt','wBt'];
staidmap=[1,56,3,58,5,60,7,62,8,49,10,51,12,53,14,55,17,40,19,42,21,44,23,46];
}
var occupiedlist=',', qid='', qqid='';
var blackchecked=false, blackcheckmated=false;
var whitechecked=false, whitecheckmated=false;
var fouroh='', eightoh='', sixoh='', spanzero='', tdtte='';
var wwwtdtte='', wwtdtte='', wtdtte='', wsixoh='', spanfive='', ppt=false;
var domcmds=[];
var wastitle='';
var gev=null, hostid='', prelegal=true, cm='';
var lastmove='', waslastmove='';
var startboard='', endboard='';
var wstartsincheck=false, wendsincheck=false;
var bstartsincheck=false, bendsincheck=false;
var thissquare=-1;
var eightaround=[-1,-1,-1,-1,-1,-1,-1,-1,-1];
var isbad=false, iswrong=false;

function anybw(asq, thebrd, bwenemy, alertallowed) {
thebrd+='&';
isbad=false;
iswrong=false;
var bwfriend=bwenemy.replace('w','!').replace('b','W').replace('!', 'b').toLowerCase();
var okfornow=true, startat=eval('' + asq), twos=[];
var startrow=Math.floor(eval(-1 + asq) / 8);
var startcol=Math.floor(eval(-1 + asq) % 8);
var lastcol=-1, lastrow=-1;
var kposa=[18,-18,17,-17,15,-15,6,-6,10,10];
var pposa=[9,7];
var kgposa=[9,8,7,-1,1,-7,-8,-9];
var ikposa=0;
if (asq == thissquare) {
asq=asq;
}
if (bwfriend == 'w') {
pposa=[-9,-7];
}

//alert('Checking ' + bwfriend + ' King at ' + asq);

// Horizontal check
startat=eval(-1 + asq);
while (startat >= 1 && startat <= 64 && startrow == Math.floor(eval(-1 + startat) / 8)) {
if (thebrd.indexOf('_' + startat + 'w') != -1) {
twos=thebrd.split('_' + startat + 'w');
if (twos[0].slice(-3).indexOf(bwfriend) != -1) {
break;
} else if (twos[0].slice(-3).indexOf(bwenemy) != -1) {
if (twos[0].slice(-3).indexOf('Q') != -1 || twos[0].slice(-3).indexOf('R') != -1) {
isbad=true;
//alert(1);
return asq;
}
}
} else if (thebrd.indexOf('_' + startat + 'b') != -1) {
twos=thebrd.split('_' + startat + 'b');
if (twos[0].slice(-3).indexOf(bwfriend) != -1) {
break;
} else if (twos[0].slice(-3).indexOf(bwenemy) != -1) {
if (twos[0].slice(-3).indexOf('Q') != -1 || twos[0].slice(-3).indexOf('R') != -1) {
isbad=true;
//alert(2);
return asq;
}
}
} else if (thebrd.indexOf('_' + startat + '&') != -1) {
twos=thebrd.split('_' + startat + '&');
if (twos[0].slice(-3).indexOf(bwfriend) != -1) {
break;
} else if (twos[0].slice(-3).indexOf(bwenemy) != -1) {
if (twos[0].slice(-3).indexOf('Q') != -1 || twos[0].slice(-3).indexOf('R') != -1) {
isbad=true;
//alert(3);
return asq;
}
}
}
startat--;
}
startat=eval(1 + asq);
while (startat >= 1 && startat <= 64 && startrow == Math.floor(eval(-1 + startat) / 8)) {
if (thebrd.indexOf('_' + startat + 'w') != -1) {
twos=thebrd.split('_' + startat + 'w');
if (twos[0].slice(-3).indexOf(bwfriend) != -1) {
break;
} else if (twos[0].slice(-3).indexOf(bwenemy) != -1) {
if (twos[0].slice(-3).indexOf('Q') != -1 || twos[0].slice(-3).indexOf('R') != -1) {
isbad=true;
//alert(11);
return asq;
}
}
} else if (thebrd.indexOf('_' + startat + 'b') != -1) {
twos=thebrd.split('_' + startat + 'b');
if (twos[0].slice(-3).indexOf(bwfriend) != -1) {
break;
} else if (twos[0].slice(-3).indexOf(bwenemy) != -1) {
if (twos[0].slice(-3).indexOf('Q') != -1 || twos[0].slice(-3).indexOf('R') != -1) {
isbad=true;
//alert(12);
return asq;
}
}
} else if (thebrd.indexOf('_' + startat + '&') != -1) {
twos=thebrd.split('_' + startat + '&');
if (twos[0].slice(-3).indexOf(bwfriend) != -1) {
break;
} else if (twos[0].slice(-3).indexOf(bwenemy) != -1) {
if (twos[0].slice(-3).indexOf('Q') != -1 || twos[0].slice(-3).indexOf('R') != -1) {
isbad=true;
//alert(13);
return asq;
}
}
}
startat++;
}

// Vertical check
startat=eval(-8 + asq);
while (startat >= 1 && startat <= 64 && startcol == Math.floor(eval(-1 + startat) % 8)) {
if (thebrd.indexOf('_' + startat + 'w') != -1) {
twos=thebrd.split('_' + startat + 'w');
if (twos[0].slice(-3).indexOf(bwfriend) != -1) {
break;
} else if (twos[0].slice(-3).indexOf(bwenemy) != -1) {
if (twos[0].slice(-3).indexOf('Q') != -1 || twos[0].slice(-3).indexOf('R') != -1) {
isbad=true;
//alert(21);
return asq;
}
}
} else if (thebrd.indexOf('_' + startat + 'b') != -1) {
twos=thebrd.split('_' + startat + 'b');
if (twos[0].slice(-3).indexOf(bwfriend) != -1) {
break;
} else if (twos[0].slice(-3).indexOf(bwenemy) != -1) {
if (twos[0].slice(-3).indexOf('Q') != -1 || twos[0].slice(-3).indexOf('R') != -1) {
isbad=true;
//alert(22);
return asq;
}
}
} else if (thebrd.indexOf('_' + startat + '&') != -1) {
twos=thebrd.split('_' + startat + '&');
if (twos[0].slice(-3).indexOf(bwfriend) != -1) {
break;
} else if (twos[0].slice(-3).indexOf(bwenemy) != -1) {
if (twos[0].slice(-3).indexOf('Q') != -1 || twos[0].slice(-3).indexOf('R') != -1) {
isbad=true;
//alert(23);
return asq;
}
}
}
startat-=8;
}
startat=eval(8 + asq);
while (startat >= 1 && startat <= 64 && startcol == Math.floor(eval(-1 + startat) % 8)) {
if (thebrd.indexOf('_' + startat + 'w') != -1) {
twos=thebrd.split('_' + startat + 'w');
if (twos[0].slice(-3).indexOf(bwfriend) != -1) {
break;
} else if (twos[0].slice(-3).indexOf(bwenemy) != -1) {
if (twos[0].slice(-3).indexOf('Q') != -1 || twos[0].slice(-3).indexOf('R') != -1) {
isbad=true;
//alert(24);
return asq;
}
}
} else if (thebrd.indexOf('_' + startat + 'b') != -1) {
twos=thebrd.split('_' + startat + 'b');
if (twos[0].slice(-3).indexOf(bwfriend) != -1) {
break;
} else if (twos[0].slice(-3).indexOf(bwenemy) != -1) {
if (twos[0].slice(-3).indexOf('Q') != -1 || twos[0].slice(-3).indexOf('R') != -1) {
isbad=true;
//alert(25);
return asq;
}
}
} else if (thebrd.indexOf('_' + startat + '&') != -1) {
twos=thebrd.split('_' + startat + '&');
if (twos[0].slice(-3).indexOf(bwfriend) != -1) {
break;
} else if (twos[0].slice(-3).indexOf(bwenemy) != -1) {
if (twos[0].slice(-3).indexOf('Q') != -1 || twos[0].slice(-3).indexOf('R') != -1) {
isbad=true;
//alert(26);
return asq;
}
}
}
startat+=8;
}

// Diagonal check
lastcol=Math.floor(eval(-1 + asq) % 8);
lastrow=Math.floor(eval(-1 + asq) / 8);
startat=eval(-9 + asq);
while (startat >= 1 && startat <= 64 && Math.abs(lastcol - Math.floor(eval(-1 + startat) % 8)) == 1 && Math.abs(lastrow - Math.floor(eval(-1 + startat) / 8)) == 1) {
if (thebrd.indexOf('_' + startat + 'w') != -1) {
twos=thebrd.split('_' + startat + 'w');
if (twos[0].slice(-3).indexOf(bwfriend) != -1) {
break;
} else if (twos[0].slice(-3).indexOf(bwenemy) != -1) {
if (twos[0].slice(-3).indexOf('Q') != -1 || twos[0].slice(-3).indexOf('B') != -1) {
isbad=true;
//alert('31 ' + bwfriend + ' ' + twos[0].slice(-3) + ' ' + startat + ' ' + asq);
return asq;
}
}
} else if (thebrd.indexOf('_' + startat + 'b') != -1) {
twos=thebrd.split('_' + startat + 'b');
if (twos[0].slice(-3).indexOf(bwfriend) != -1) {
break;
} else if (twos[0].slice(-3).indexOf(bwenemy) != -1) {
if (twos[0].slice(-3).indexOf('Q') != -1 || twos[0].slice(-3).indexOf('B') != -1) {
isbad=true;
//alert(32);
return asq;
}
}
} else if (thebrd.indexOf('_' + startat + '&') != -1) {
twos=thebrd.split('_' + startat + '&');
if (twos[0].slice(-3).indexOf(bwfriend) != -1) {
break;
} else if (twos[0].slice(-3).indexOf(bwenemy) != -1) {
if (twos[0].slice(-3).indexOf('Q') != -1 || twos[0].slice(-3).indexOf('B') != -1) {
isbad=true;
//alert(33);
return asq;
}
}
}
lastcol=Math.floor(eval(-1 + startat) % 8);
lastrow=Math.floor(eval(-1 + startat) / 8);
startat-=9;
}
lastcol=Math.floor(eval(-1 + asq) % 8);
lastrow=Math.floor(eval(-1 + asq) / 8);
startat=eval(-7 + asq);
while (startat >= 1 && startat <= 64 && Math.abs(lastcol - Math.floor(eval(-1 + startat) % 8)) == 1 && Math.abs(lastrow - Math.floor(eval(-1 + startat) / 8)) == 1) { // && startcol == Math.floor(eval(-1 + startat) % 8)) {
if (thebrd.indexOf('_' + startat + 'w') != -1) {
twos=thebrd.split('_' + startat + 'w');
if (twos[0].slice(-3).indexOf(bwfriend) != -1) {
break;
} else if (twos[0].slice(-3).indexOf(bwenemy) != -1) {
if (twos[0].slice(-3).indexOf('Q') != -1 || twos[0].slice(-3).indexOf('B') != -1) {
isbad=true;
//alert(41);
return asq;
}
}
} else if (thebrd.indexOf('_' + startat + 'b') != -1) {
twos=thebrd.split('_' + startat + 'b');
if (twos[0].slice(-3).indexOf(bwfriend) != -1) {
break;
} else if (twos[0].slice(-3).indexOf(bwenemy) != -1) {
if (twos[0].slice(-3).indexOf('Q') != -1 || twos[0].slice(-3).indexOf('B') != -1) {
isbad=true;
//alert(42);
return asq;
}
}
} else if (thebrd.indexOf('_' + startat + '&') != -1) {
twos=thebrd.split('_' + startat + '&');
if (twos[0].slice(-3).indexOf(bwfriend) != -1) {
break;
} else if (twos[0].slice(-3).indexOf(bwenemy) != -1) {
if (twos[0].slice(-3).indexOf('Q') != -1 || twos[0].slice(-3).indexOf('B') != -1) {
isbad=true;
//alert(43);
return asq;
}
}
}
lastcol=Math.floor(eval(-1 + startat) % 8);
lastrow=Math.floor(eval(-1 + startat) / 8);
startat-=7;
}
lastcol=Math.floor(eval(-1 + asq) % 8);
lastrow=Math.floor(eval(-1 + asq) / 8);
startat=eval(9 + asq);
while (startat >= 1 && startat <= 64 && Math.abs(lastcol - Math.floor(eval(-1 + startat) % 8)) == 1 && Math.abs(lastrow - Math.floor(eval(-1 + startat) / 8)) == 1) { // && startcol == Math.floor(eval(-1 + startat) % 8)) {
if (thebrd.indexOf('_' + startat + 'w') != -1) {
twos=thebrd.split('_' + startat + 'w');
if (twos[0].slice(-3).indexOf(bwfriend) != -1) {
break;
} else if (twos[0].slice(-3).indexOf(bwenemy) != -1) {
if (twos[0].slice(-3).indexOf('Q') != -1 || twos[0].slice(-3).indexOf('B') != -1) {
isbad=true;
//alert(44);
return asq;
}
}
} else if (thebrd.indexOf('_' + startat + 'b') != -1) {
twos=thebrd.split('_' + startat + 'b');
if (twos[0].slice(-3).indexOf(bwfriend) != -1) {
break;
} else if (twos[0].slice(-3).indexOf(bwenemy) != -1) {
if (twos[0].slice(-3).indexOf('Q') != -1 || twos[0].slice(-3).indexOf('B') != -1) {
isbad=true;
//alert(45);
return asq;
}
}
} else if (thebrd.indexOf('_' + startat + '&') != -1) {
twos=thebrd.split('_' + startat + '&');
if (twos[0].slice(-3).indexOf(bwfriend) != -1) {
break;
} else if (twos[0].slice(-3).indexOf(bwenemy) != -1) {
if (twos[0].slice(-3).indexOf('Q') != -1 || twos[0].slice(-3).indexOf('B') != -1) {
isbad=true;
//alert(46);
return asq;
}
}
}
lastcol=Math.floor(eval(-1 + startat) % 8);
lastrow=Math.floor(eval(-1 + startat) / 8);
startat+=9;
}
lastcol=Math.floor(eval(-1 + asq) % 8);
lastrow=Math.floor(eval(-1 + asq) / 8);
startat=eval(7 + asq);
while (startat >= 1 && startat <= 64 && Math.abs(lastcol - Math.floor(eval(-1 + startat) % 8)) == 1 && Math.abs(lastrow - Math.floor(eval(-1 + startat) / 8)) == 1) { // && startcol == Math.floor(eval(-1 + startat) % 8)) {
//alert('checking square ' + startat);
if (thebrd.indexOf('_' + startat + 'w') != -1) {
twos=thebrd.split('_' + startat + 'w');
if (twos[0].slice(-3).indexOf(bwfriend) != -1) {
break;
} else if (twos[0].slice(-3).indexOf(bwenemy) != -1) {
if (twos[0].slice(-3).indexOf('Q') != -1 || twos[0].slice(-3).indexOf('B') != -1) {
isbad=true;
//alert(51);
return asq;
}
}
} else if (thebrd.indexOf('_' + startat + 'b') != -1) {
twos=thebrd.split('_' + startat + 'b');
if (twos[0].slice(-3).indexOf(bwfriend) != -1) {
break;
} else if (twos[0].slice(-3).indexOf(bwenemy) != -1) {
if (twos[0].slice(-3).indexOf('Q') != -1 || twos[0].slice(-3).indexOf('B') != -1) {
isbad=true;
//alert(52);
return asq;
}
}
} else if (thebrd.indexOf('_' + startat + '&') != -1) {
twos=thebrd.split('_' + startat + '&');
if (twos[0].slice(-3).indexOf(bwfriend) != -1) {
break;
} else if (twos[0].slice(-3).indexOf(bwenemy) != -1) {
if (twos[0].slice(-3).indexOf('Q') != -1 || twos[0].slice(-3).indexOf('B') != -1) {
isbad=true;
//alert(53);
return asq;
}
}
}
lastcol=Math.floor(eval(-1 + startat) % 8);
lastrow=Math.floor(eval(-1 + startat) / 8);
startat+=7;
}

// Knight check
for (ikposa=0; ikposa<kposa.length; ikposa++) {
startat=eval(kposa[ikposa] + asq);
if (startat >= 1 && startat <= 64 && startrow != Math.floor(eval(-1 + startat) / 8) && startcol != Math.floor(eval(-1 + startat) % 8)) {
if (thebrd.indexOf('_' + startat + 'w') != -1) {
twos=thebrd.split('_' + startat + 'w');
if (twos[0].slice(-3).indexOf(bwfriend) != -1) {
twos[0]=twos[0];
} else if (twos[0].slice(-3).indexOf(bwenemy) != -1) {
if (twos[0].slice(-3).indexOf('K1') != -1 || twos[0].slice(-3).indexOf('K2') != -1) {
isbad=true;
//alert(61);
return asq;
}
}
} else if (thebrd.indexOf('_' + startat + 'b') != -1) {
twos=thebrd.split('_' + startat + 'b');
if (twos[0].slice(-3).indexOf(bwfriend) != -1) {
twos[0]=twos[0];
} else if (twos[0].slice(-3).indexOf(bwenemy) != -1) {
if (twos[0].slice(-3).indexOf('K1') != -1 || twos[0].slice(-3).indexOf('K2') != -1) {
isbad=true;
//alert(62);
return asq;
}
}
} else if (thebrd.indexOf('_' + startat + '&') != -1) {
twos=thebrd.split('_' + startat + '&');
if (twos[0].slice(-3).indexOf(bwfriend) != -1) {
twos[0]=twos[0];
} else if (twos[0].slice(-3).indexOf(bwenemy) != -1) {
if (twos[0].slice(-3).indexOf('K1') != -1 || twos[0].slice(-3).indexOf('K2') != -1) {
isbad=true;
//alert(63);
return asq;
}
}
}
}
}

// Pawn check
for (ikposa=0; ikposa<pposa.length; ikposa++) {
startat=eval(pposa[ikposa] + asq);
if (startat >= 1 && startat <= 64 && startrow != Math.floor(eval(-1 + startat) / 8) && startcol != Math.floor(eval(-1 + startat) % 8)) {
if (thebrd.indexOf('_' + startat + 'w') != -1) {
twos=thebrd.split('_' + startat + 'w');
if (twos[0].slice(-3).indexOf(bwfriend) != -1) {
twos[0]=twos[0];
} else if (twos[0].slice(-3).indexOf(bwenemy) != -1) {
if (twos[0].slice(-3).indexOf('P') != -1) {
isbad=true;
//alert(71);
return asq;
}
}
} else if (thebrd.indexOf('_' + startat + 'b') != -1) {
twos=thebrd.split('_' + startat + 'b');
if (twos[0].slice(-3).indexOf(bwfriend) != -1) {
twos[0]=twos[0];
} else if (twos[0].slice(-3).indexOf(bwenemy) != -1) {
if (twos[0].slice(-3).indexOf('P') != -1) {
isbad=true;
//alert(72);
return asq;
}
}
} else if (thebrd.indexOf('_' + startat + '&') != -1) {
twos=thebrd.split('_' + startat + '&');
if (twos[0].slice(-3).indexOf(bwfriend) != -1) {
twos[0]=twos[0];
} else if (twos[0].slice(-3).indexOf(bwenemy) != -1) {
if (twos[0].slice(-3).indexOf('P') != -1) {
isbad=true;
//alert(73);
return asq;
}
}
}
}
}

// King too near King check
for (ikgposa=0; ikgposa<kgposa.length; ikgposa++) {
startat=eval(kgposa[ikgposa] + asq);
//alert('startat=' + startat + ' and asq=' + asq + ' ' + thebrd);
if (startat >= 1 && startat <= 64) { // && startrow != Math.floor(eval(-1 + startat) / 8) && startcol != Math.floor(eval(-1 + startat) % 8)) {
if (thebrd.indexOf('_' + startat + 'w') != -1) {
twos=thebrd.split('_' + startat + 'w');
if (twos[0].slice(-3).indexOf(bwfriend) != -1) {
twos[0]=twos[0];
} else if (twos[0].slice(-3).indexOf(bwenemy) != -1) {
if (twos[0].slice(-3).indexOf('K') != -1 && twos[0].slice(-3).indexOf('K1') == -1 && twos[0].slice(-3).indexOf('K2') == -1) {
iswrong=true;
if (alertallowed) { alert('Kings can not be this close together.'); }
//alert(91);
return asq;
}
}
} else if (thebrd.indexOf('_' + startat + 'b') != -1) {
twos=thebrd.split('_' + startat + 'b');
if (twos[0].slice(-3).indexOf(bwfriend) != -1) {
twos[0]=twos[0];
} else if (twos[0].slice(-3).indexOf(bwenemy) != -1) {
if (twos[0].slice(-3).indexOf('K') != -1 && twos[0].slice(-3).indexOf('K1') == -1 && twos[0].slice(-3).indexOf('K2') == -1) {
iswrong=true;
if (alertallowed) { alert('Kings can not be this close together.'); }
//alert(92);
return asq;
}
}
} else if (thebrd.indexOf('_' + startat + '&') != -1) {
twos=thebrd.split('_' + startat + '&');
if (twos[0].slice(-3).indexOf(bwfriend) != -1) {
twos[0]=twos[0];
} else if (twos[0].slice(-3).indexOf(bwenemy) != -1) {
if (twos[0].slice(-3).indexOf('K') != -1 && twos[0].slice(-3).indexOf('K1') == -1 && twos[0].slice(-3).indexOf('K2') == -1) {
iswrong=true;
if (alertallowed) { alert('Kings can not be this close together.'); }
//alert(93);
return asq;
}
}
}
}
}

return asq;
}

function wrtincheck(thepiece, theboard) {
//if (theboard.length < 70) { alert('endboard=' + endboard); }
thissquare=-1;
eightaround=[-1,-1,-1,-1,-1,-1,-1,-1,-1];
if (theboard.indexOf(thepiece + '_') == -1 && theboard.indexOf(thepiece.replace('w','!').replace('b','W').replace('!', 'b').toLowerCase() + '_') != -1) {
if (thepiece.substring(0,1) == 'w') {
wstartsincheck=true;
wendsincheck=true;
alert('Checkmate! Congratulations, ' + playerb);
return true;
} else {
bstartsincheck=true;
bendsincheck=true;
alert('Checkmate! Congratulations, ' + playerw);
return true;
}
} else {
// Get this square and eight squares around
//alert('theboard=' + theboard + ' and thepiece=' + thepiece);
thissquare=eval('' + theboard.split(thepiece + '_')[1].split('b')[0].split('w')[0].split('&')[0]);
eightaround[0]=anybw(thissquare, theboard, thepiece.substring(0,1).replace('w','!').replace('b','W').replace('!', 'b').toLowerCase(), false);
if (isbad && thepiece.substring(0,1) == 'w') {
consolelog(playerw + ', your King is in check.');
}
if (isbad && thepiece.substring(0,1) == 'b') {
consolelog(playerb + ', your King is in check.');
}
if (1 == 7) {
if (eval(-9 + thissquare) >= 1 && eval(-9 + thissquare) <= 64) {
eightaround[1]=anybw(eval(-9 + thissquare), theboard, thepiece.substring(0,1).replace('w','!').replace('b','W').replace('!', 'b').toLowerCase(), false);
}
if (eval(-8 + thissquare) >= 1 && eval(-8 + thissquare) <= 64) {
eightaround[2]=anybw(eval(-8 + thissquare), theboard, thepiece.substring(0,1).replace('w','!').replace('b','W').replace('!', 'b').toLowerCase(), false);
}
if (eval(-7 + thissquare) >= 1 && eval(-7 + thissquare) <= 64) {
eightaround[3]=anybw(eval(-7 + thissquare), theboard, thepiece.substring(0,1).replace('w','!').replace('b','W').replace('!', 'b').toLowerCase(), false);
}
if (eval(-1 + thissquare) >= 1 && eval(-1 + thissquare) <= 64) {
eightaround[4]=anybw(eval(-1 + thissquare), theboard, thepiece.substring(0,1).replace('w','!').replace('b','W').replace('!', 'b').toLowerCase(), false);
}
if (eval(1 + thissquare) >= 1 && eval(1 + thissquare) <= 64) {
eightaround[5]=anybw(eval(1 + thissquare), theboard, thepiece.substring(0,1).replace('w','!').replace('b','W').replace('!', 'b').toLowerCase(), false);
}
if (eval(7 + thissquare) >= 1 && eval(7 + thissquare) <= 64) {
eightaround[6]=anybw(eval(7 + thissquare), theboard, thepiece.substring(0,1).replace('w','!').replace('b','W').replace('!', 'b').toLowerCase(), false);
}
if (eval(8 + thissquare) >= 1 && eval(8 + thissquare) <= 64) {
eightaround[7]=anybw(eval(8 + thissquare), theboard, thepiece.substring(0,1).replace('w','!').replace('b','W').replace('!', 'b').toLowerCase(), false);
}
if (eval(9 + thissquare) >= 1 && eval(9 + thissquare) <= 64) {
eightaround[8]=anybw(eval(9 + thissquare), theboard, thepiece.substring(0,1).replace('w','!').replace('b','W').replace('!', 'b').toLowerCase(), false);
}
}
}
}

function checkstartcheck() {
var mbits=amove.split('_'), ppbits=[], prerepbit='', repbit='', tdso=[], itdso=0;
if (document.getElementById('fshare')) {
if (document.getElementById('fshare').innerHTML.indexOf('_') != -1) {
if (tradmove(trad + '&move=' + amove).indexOf('_') != -1) {
startboard=tradmove(trad + '&move=' + amove);
} else {
startboard=document.getElementById('fshare').href.split('&')[0] + '&';
}
if (startboard.indexOf('_') == -1) { startboard=document.getElementById('fshare').innerHTML; }
if (eval('' + mbits.length) >= 3) {
if (startboard.indexOf('_' + mbits[2] + 'w') != -1) {
ppbits=startboard.split('_' + mbits[2] + 'w');
repbit='_' + mbits[2] + 'w';
while (ppbits[0].slice(-1) != 'w' && ppbits[0].slice(-1) != 'b') {
prerepbit=ppbits[0].slice(-1) + prerepbit;
ppbits[0]=ppbits[0].substring(0, eval(-1 + eval('' + ppbits[0].length)));
}
prerepbit=ppbits[0].slice(-1) + prerepbit;
startboard=startboard.replace(prerepbit + repbit, 'w');
} else if (startboard.indexOf('_' + mbits[2] + 'b') != -1) {
ppbits=startboard.split('_' + mbits[2] + 'b');
repbit='_' + mbits[2] + 'b';
while (ppbits[0].slice(-1) != 'w' && ppbits[0].slice(-1) != 'b') {
prerepbit=ppbits[0].slice(-1) + prerepbit;
ppbits[0]=ppbits[0].substring(0, eval(-1 + eval('' + ppbits[0].length)));
}
prerepbit=ppbits[0].slice(-1) + prerepbit;
startboard=startboard.replace(prerepbit + repbit, 'b');
} else if (startboard.indexOf('_' + mbits[2] + '&') != -1) {
ppbits=startboard.split('_' + mbits[2] + '&');
repbit='_' + mbits[2] + '&';
while (ppbits[0].slice(-1) != 'w' && ppbits[0].slice(-1) != 'b') {
prerepbit=ppbits[0].slice(-1) + prerepbit;
ppbits[0]=ppbits[0].substring(0, eval(-1 + eval('' + ppbits[0].length)));
}
prerepbit=ppbits[0].slice(-1) + prerepbit;
startboard=startboard.replace(prerepbit + repbit, '&');
}
}
}
} else {
startboard='';
if (tradmove(trad + '&move=' + amove).indexOf('_') != -1) {
startboard=tradmove(trad + '&move=' + amove);
} else {
tdso=document.getElementsByTagName('td');
for (itdso=0; itdso<tdso.length; itdso++) {
if (tdso[itdso].outerHTML.indexOf(' data-square="') != -1 && tdso[itdso].outerHTML.indexOf(' data-piece="') != -1) {
startboard+=tdso[itdso].outerHTML.split(' data-piece="')[1].split('"')[0] + '_' + tdso[itdso].outerHTML.split(' data-square="')[1].split('"')[0];
}
}
}
if (document.getElementById('fnodz')) {
document.getElementById('fnodz').innerHTML+='<a id=fshare href="mailto:?subject=Chess&body=' + startboard + '" style=display:none;>' + startboard + '</a>';
}
}
if (startboard == '') {
if (tradmove(trad + '&move=' + amove).indexOf('_') != -1) {
startboard=tradmove(trad + '&move=' + amove);
} else {
for (var iix=0; iix<cpa.length; iix++) {
startboard+=cpa[iix] + '_' + eval(1 + staidmap[iix]);
}
}
startboard+='&';
if (document.getElementById('fshare')) {
document.getElementById('fshare').href='mailto:?subject=Chess&body=' + startboard;
document.getElementById('fshare').innerHTML=startboard;
} else if (document.getElementById('fnodz')) {
document.getElementById('fnodz').innerHTML+='<a id=fshare href="mailto:?subject=Chess&body=' + startboard + '" style=display:none;>' + startboard + '</a>';
}

}
if (document.URL.indexOf('draughts') == -1) {
wstartsincheck=wrtincheck('wK', startboard);
bstartsincheck=wrtincheck('bK', startboard);
}

if (iswrong) {
alert('In a chess game the two Kings can not be this close');
}
}

function firstok(inm) {
if (document.URL.indexOf('draughts') != -1) { return inm; }
if (inm == 'bP1_9_17') { return inm; }
if (inm == 'bP1_9_25') { return inm; }
if (inm == 'bP2_10_18') { return inm; }
if (inm == 'bP2_10_26') { return inm; }
if (inm == 'bP3_11_19') { return inm; }
if (inm == 'bP3_11_27') { return inm; }
if (inm == 'bP4_12_20') { return inm; }
if (inm == 'bP4_12_28') { return inm; }
if (inm == 'bP5_13_21') { return inm; }
if (inm == 'bP5_13_29') { return inm; }
if (inm == 'bP6_14_22') { return inm; }
if (inm == 'bP6_14_30') { return inm; }
if (inm == 'bP7_15_23') { return inm; }
if (inm == 'bP7_15_31') { return inm; }
if (inm == 'bP8_16_24') { return inm; }
if (inm == 'bP8_16_32') { return inm; }
if (inm == 'bK1_3_20') { return inm; }
if (inm == 'bK1_3_22') { return inm; }
if (inm == 'bK2_6_23') { return inm; }
if (inm == 'bK2_6_25') { return inm; }


if (inm == 'wK1_59_42') { return inm; }
if (inm == 'wK1_59_44') { return inm; }
if (inm == 'wK2_62_45') { return inm; }
if (inm == 'wK2_62_47') { return inm; }
if (inm == 'wP1_49_41') { return inm; }
if (inm == 'wP1_49_33') { return inm; }
if (inm == 'wP2_50_42') { return inm; }
if (inm == 'wP2_50_34') { return inm; }
if (inm == 'wP3_51_43') { return inm; }
if (inm == 'wP3_51_35') { return inm; }
if (inm == 'wP4_52_44') { return inm; }
if (inm == 'wP4_52_36') { return inm; }
if (inm == 'wP5_53_45') { return inm; }
if (inm == 'wP5_53_37') { return inm; }
if (inm == 'wP6_54_46') { return inm; }
if (inm == 'wP6_54_38') { return inm; }
if (inm == 'wP7_55_47') { return inm; }
if (inm == 'wP7_55_39') { return inm; }
if (inm == 'wP8_56_48') { return inm; }
if (inm == 'wP8_56_40') { return inm; }
return '';
}

function tradmove(proposedtm) {
var outp=proposedtm, idoneoh='';
if (gval != '') { return gval; }
if (outp.indexOf('_') != -1 && outp.split('&')[0].indexOf('_') == -1) {
outp='';
for (var iix=0; iix<cpa.length; iix++) {
outp+=cpa[iix] + '_' + eval(1 + staidmap[iix]);
}
startboard=outp + '&';
endboard=outp + '&';
var mbits=amove.split('_'), ppbits=[], prerepbit='', repbit='';
if (eval('' + mbits.length) >= 3) {
if (2 == 12) {
lastmove=amove;
//amove='';
fixamove(lastmove);
consolelog('Chess piece ' + mbits[0] + ' moved from square ' + mbits[1] + ' to ' + mbits[2]);
} else {
if (amove != '') {
lastmove=firstok(amove);
if (lastmove != '') {
var tdsz=document.getElementsByTagName('td'), itdsz=0;
for (itdsz=0; itdsz<tdsz.length; itdsz++) {
if (tdsz[itdsz].outerHTML.indexOf(' data-square="' + mbits[1] + '"') != -1) {
idzero=tdsz[itdsz].id;
mbits[0]=mbits[0].substring(0,1).toLowerCase() + mbits[0].substring(1).substring(0,1).toUpperCase() + mbits[0].substring(2);
//alert(mbits[0] + ' ' + tdsz[itdsz].outerHTML);
if (tdsz[itdsz].outerHTML.indexOf(' data-piece="' + mbits[0] + '"') != -1) {
idone='' + tdsz[itdsz].outerHTML.split(' data-square="' + mbits[1] + '"')[1].split('>')[1].split(' id="')[1].split('"')[0];
idoneoh=document.getElementById(idone).outerHTML;
//alert('175 ' + idone);
//document.getElementById(idone).addEventListener("click", (ev) => { gev=ev; if (1 == 1) { setTimeout(delayedrefit, 500); } else { refit(ev); } });
//domcmds.push("document.getElementById('" + idone + "').click();");
} else {
idone='' + tdsz[itdsz].id;
//alert('176 ' + idone);
//tdsz[itdsz].click();
//document.getElementById(idone).addEventListener("click", (ev) => { gev=ev; if (1 == 1) { setTimeout(delayedrefit, 500); } else { refit(ev); } });
//domcmds.push("document.getElementById('" + idone + "').click();");
}
}
}
for (itdsz=0; itdsz<tdsz.length; itdsz++) {
if (tdsz[itdsz].outerHTML.indexOf(' data-square="' + mbits[2] + '"') != -1) {
if (tdsz[itdsz].outerHTML.indexOf(' data-piece="') != -1) {
//alert(276);
idtwo='' + tdsz[itdsz].outerHTML.split(' data-square="' + mbits[2] + '"')[1].split('>')[1].split(' id="')[1].split('"')[0];
//document.getElementById(idtwo).addEventListener("click", (ev) => { gev=ev; if (1 == 1) { setTimeout(delayedrefit, 500); } else { refit(ev); } });
domcmds.push("document.getElementById('" + idtwo + "').click();");
} else {
//alert(376);
idtwo='' + tdsz[itdsz].id;
if (idoneoh != '') {
document.getElementById(idzero).innerHTML='';
tdsz[itdsz].innerHTML=idoneoh;
if (amove != '') {
lastmove=amove;
document.getElementById('pstatus').setAttribute('data-decided', 'bw');
nextmove=eval('' + mbits[2]);
consolelog('Chess piece ' + mbits[0] + ' moved from square ' + mbits[1] + ' to square ' + mbits[2]);
//amove='';
fixamove(lastmove);
itisthiscmove=amove.substring(0,1).replace('b','!').replace('w','B').replace('!','W').toLowerCase();
}
}
//tdsz[itdsz].click();
//document.getElementById(idtwo).addEventListener("click", (ev) => { gev=ev; if (1 == 1) { setTimeout(delayedrefit, 500); } else { refit(ev); } });
//domcmds.push("document.getElementById('" + idone + "').click();");
}
}
}
}
}
}
}
gval=outp + '&' + proposedtm.split('&')[1];
return outp + '&' + proposedtm.split('&')[1];
}
gval=outp;
return outp;
}

function fixabw(thebname, thewname) {
if (document.getElementById('fshare')) {
//alert('HeRe');
var mbits=amove.split('_'), ppbits=[], prerepbit='', repbit='';
if (eval('' + mbits.length) >= 3) {
//if (endboard.indexOf((mbits[0] + '_' + mbits[1])) == -1) { alert('prepostOOPS'); }
//if (document.getElementById('fshare').href.indexOf((mbits[0] + '_' + mbits[1])) == -1) { alert('preOOPS'); }
//if (document.getElementById('fshare').innerHTML.indexOf((mbits[0] + '_' + mbits[1])) == -1) { alert('apreOOPS'); }
//if (document.getElementById('fshare').href.indexOf(encodeURIComponent(mbits[0] + '_' + mbits[1])) == -1) { alert('bpreOOPS'); }
//alert(document.getElementById('fshare').href);
if (document.getElementById('fshare').href.indexOf('_' + mbits[2] + 'w') != -1) { //|| document.getElementById('fshare').href.indexOf('_' + mbits[2] + 'b') != -1document.getElementById('fshare').href.indexOf('_' + mbits[2] + '&') != -1) {
ppbits=document.getElementById('fshare').href.split('_' + mbits[2] + 'w');
repbit='_' + mbits[2] + 'w';
while (ppbits[0].slice(-1) != 'w' && ppbits[0].slice(-1) != 'b') {
prerepbit=ppbits[0].slice(-1) + prerepbit;
ppbits[0]=ppbits[0].substring(0, eval(-1 + eval('' + ppbits[0].length)));
}
prerepbit=ppbits[0].slice(-1) + prerepbit;
document.getElementById('fshare').href=document.getElementById('fshare').href.replace(prerepbit + repbit, 'w');
} else if (document.getElementById('fshare').href.indexOf('_' + mbits[2] + 'b') != -1) { //|| document.getElementById('fshare').href.indexOf('_' + mbits[2] + 'b') != -1document.getElementById('fshare').href.indexOf('_' + mbits[2] + '&') != -1) {
ppbits=document.getElementById('fshare').href.split('_' + mbits[2] + 'b');
repbit='_' + mbits[2] + 'b';
while (ppbits[0].slice(-1) != 'w' && ppbits[0].slice(-1) != 'b') {
prerepbit=ppbits[0].slice(-1) + prerepbit;
ppbits[0]=ppbits[0].substring(0, eval(-1 + eval('' + ppbits[0].length)));
}
prerepbit=ppbits[0].slice(-1) + prerepbit;
document.getElementById('fshare').href=document.getElementById('fshare').href.replace(prerepbit + repbit, 'b');
} else if (document.getElementById('fshare').href.indexOf('_' + mbits[2] + '&') != -1) { //|| document.getElementById('fshare').href.indexOf('_' + mbits[2] + 'b') != -1document.getElementById('fshare').href.indexOf('_' + mbits[2] + '&') != -1) {
ppbits=document.getElementById('fshare').href.split('_' + mbits[2] + '&');
repbit='_' + mbits[2] + '&';
while (ppbits[0].slice(-1) != 'w' && ppbits[0].slice(-1) != 'b') {
prerepbit=ppbits[0].slice(-1) + prerepbit;
ppbits[0]=ppbits[0].substring(0, eval(-1 + eval('' + ppbits[0].length)));
}
prerepbit=ppbits[0].slice(-1) + prerepbit;
document.getElementById('fshare').href=document.getElementById('fshare').href.replace(prerepbit + repbit, '&');
}
//if (document.getElementById('fshare').href.indexOf((mbits[0] + '_' + mbits[1])) == -1) { alert('OOPS'); }
document.getElementById('fshare').href=document.getElementById('fshare').href.replace((mbits[0] + '_' + mbits[1]), (mbits[0] + '_' + mbits[2])).replace(/\+\(black\)\+\(black\)/g,'+(black)').replace(/\+\(white\)\+\(white\)/g,'+(white)').replace('wR_','wR1_');
if (startboard == '') {
startboard=document.getElementById('fshare').href; // new
if (startboard.indexOf('bP2') == -1) { alert('OoPs'); }
//alert('sb=' + startboard);
}
}
if (decodeURIComponent(document.getElementById('fshare').href).indexOf('bname=' + encodeURIComponent(thebname)) == -1 && decodeURIComponent(document.getElementById('fshare').href).indexOf('bname=') != -1) {
document.getElementById('fshare').href=document.getElementById('fshare').href.replace(encodeURIComponent('bname='), encodeURIComponent('bname=' + encodeURIComponent(thebname) + '&x=x')).replace('wR_','wR1_');
}
if (decodeURIComponent(document.getElementById('fshare').href).indexOf('wname=' + encodeURIComponent(thewname)) == -1 && decodeURIComponent(document.getElementById('fshare').href).indexOf('wname=') != -1) {
document.getElementById('fshare').href=document.getElementById('fshare').href.replace(encodeURIComponent('wname='), encodeURIComponent('wname=' + encodeURIComponent(thewname) + '&x=x')).replace('wR_','wR1_');
}
if (startboard == '') {
if (tradmove(trad + '&move=' + amove).indexOf('_') != -1) {
startboard=tradmove(trad + '&move=' + amove);
} else {
for (var iix=0; iix<cpa.length; iix++) {
startboard+=cpa[iix] + '_' + eval(1 + staidmap[iix]);
}
}
startboard+='&';
if (document.getElementById('fshare')) {
document.getElementById('fshare').href='mailto:?subject=Chess&body=' + startboard;
document.getElementById('fshare').innerHTML=startboard;
} else if (document.getElementById('fnodz')) {
document.getElementById('fnodz').innerHTML+='<a id=fshare href="mailto:?subject=Chess&body=' + startboard + '" style=display:none;>' + startboard + '</a>';
}
endboard=startboard;

}
//alert('startboard=' + startboard);
if (endboard == '') {
if (tradmove(trad + '&move=' + amove).indexOf('_') != -1) {
endboard=tradmove(trad + '&move=' + amove);
//if (endboard.indexOf((mbits[0] + '_' + mbits[1])) == -1) { alert('qprepostOOPS'); } else { alert('good'); }
document.getElementById('fshare').innerHTML=endboard;
if (startboard == '') { startboard=endboard; }
}
}
if (document.getElementById('fshare')) {
if (endboard == '') {
endboard=document.getElementById('fshare').href.split('&')[0] + '&';
if (endboard.indexOf('_') == -1) { endboard=document.getElementById('fshare').innerHTML; }
if (startboard == '') { startboard=endboard; }
}
if (endboard.indexOf('_') == -1 && tradmove(trad + '&move=' + amove).indexOf('_') != -1) {
endboard=tradmove(trad + '&move=' + amove);
if (startboard == '') { startboard=endboard; }
}
//alert('Endboard=' + endboard);
if (document.URL.indexOf('draughts') == -1) {
wendsincheck=wrtincheck('wK', endboard);
if (iswrong) { alert('Kings can not be this close.'); return ' '; }
if (isbad) { return 'w'; }
bendsincheck=wrtincheck('bK', endboard);
if (iswrong) { alert('Kings can not be this close.'); return ' '; }
if (isbad) { return 'b'; }
}
startboard=endboard;
}
}
return '';
}

function fixamove(proposedmove) {
var subjbit='';
var atrue=true, btrue='';
var wasfs='';
if (document.getElementById('fshare')) {
wasfs=document.getElementById('fshare').href;
}
if (document.getElementById('fshare') && twosubsfrom[0] != '' && eval('' + onenewmove.length) == 1 && proposedmove == '') {
//alert('567 ' + wasfs);
proposedmove=onenewmove[0];
var washref=document.getElementById('fshare').href;
if (twosubsfrom[0] == 'bR1') {
washref=washref.replace('bR1_1', 'bR1_4');
washref=washref.replace('bK_5', 'bK_2');
proposedmove='bK_2_3';
endboard=washref.replace('bK_2','bK_3');
} else if (twosubsfrom[0] == 'bR2') {
washref=washref.replace('bR2_8', 'bR2_6');
washref=washref.replace('bK_5', 'bK_8');
proposedmove='bK_8_7';
endboard=washref.replace('bK_8','bK_7');
} else if (twosubsfrom[0] == 'wR1') {
washref=washref.replace('wR1_57', 'wR1_60');
washref=washref.replace('wK_61', 'wK_58');
proposedmove='bK_58_59';
endboard=washref.replace('wK_58','wK_59');
} else if (twosubsfrom[0] == 'wR2') {
washref=washref.replace('wR2_64', 'wR2_62');
washref=washref.replace('wK_61', 'wK_64');
proposedmove='bK_64_63';
endboard=washref.replace('wK_64','wK_63');
}
onenewmove=[];
document.getElementById('fshare').href=washref;
//endboard=washref;
btrue=fixabw(playerb, playerw);
if (btrue != '') {
if (btrue == 'w' && proposedmove.substring(0,1) == 'w') {
onenewmove=[];
atrue=false;
consolelog(playerw + ', your King is in check with this move.');
ouralert(playerw + ', your King is in check with this move.');
if (wasfs != '') {
document.getElementById('fshare').href=wasfs;
endboard=startboard;
}
return atrue;
} else if (btrue == 'b' && proposedmove.substring(0,1) == 'b') {
onenewmove=[];
atrue=false;
consolelog(playerb + ', your King is in check with this move.');
ouralert(playerb + ', your King is in check with this move.');
if (wasfs != '') {
document.getElementById('fshare').href=wasfs;
endboard=startboard;
}
return atrue;
} else if (btrue == 'w' && proposedmove.substring(0,1) == 'b') {
consolelog(playerw + ', your King has been put into check.');
setTimeout(function(){ ouralert(playerw + ', your King has been put into check.'); }, 1000);
} else if (btrue == 'b' && proposedmove.substring(0,1) == 'w') {
consolelog(playerb + ', your King has been put into check.');
setTimeout(function(){ ouralert(playerb + ', your King has been put into check.'); }, 1000);
} else if (btrue == ' ') {
onenewmove=[];
atrue=false;
consolelog('This move has caused Kings to be too close together.');
ouralert('This move has caused Kings to be too close together.');
if (wasfs != '') {
document.getElementById('fshare').href=wasfs;
endboard=startboard;
}
return atrue;
}
}

twosubsfrom[0]='';
twosubsto[0]='';
}
if (document.getElementById('fshare') && proposedmove.trim() != '') {
//if (5 == 5) { endboard=document.getElementById('fshare').innerHTML; if (document.getElementById('fshare').href.indexOf(endboard) != -1) { alert('ouch '); } }
//alert('HeRE ' + proposedmove + ' ' + endboard);

var mbits=proposedmove.split('_');
if (endboard == '') {
if (tradmove(trad + '&move=' + amove).indexOf('_') != -1) {
endboard=tradmove(trad + '&move=' + amove);
}
endboard=document.getElementById('fshare').href;
}
//alert('proposedmove=' + proposedmove);
endboard=endboard.replace(encodeURIComponent(mbits[0] + '_' + mbits[1]), encodeURIComponent(mbits[0] + '_' + mbits[2])).replace((mbits[0] + '_' + mbits[1]), (mbits[0] + '_' + mbits[2]));
//startboard=endboard;
//alert('EndBoard=' + endboard + ' ' + document.getElementById('fshare').href);

btrue=fixabw(playerb, playerw);
if (btrue != '') {
if (btrue == 'w' && proposedmove.substring(0,1) == 'w') {
onenewmove=[];
atrue=false;
consolelog(playerw + ', your King is in check with this move.');
setTimeout(function(){ ouralert(playerw + ', your King is in check with this move.'); itisthiscmove='w'; }, 5000);
if (wasfs != '') {
document.getElementById('fshare').href=wasfs;
endboard=startboard;
}
return atrue;
} else if (btrue == 'b' && proposedmove.substring(0,1) == 'b') {
onenewmove=[];
atrue=false;
consolelog(playerb + ', your King is in check with this move.');
setTimeout(function(){ ouralert(playerb + ', your King is in check with this move.'); itisthiscmove='b'; }, 5000);
if (wasfs != '') {
document.getElementById('fshare').href=wasfs;
endboard=startboard;
}
return atrue;
} else if (btrue == 'w' && proposedmove.substring(0,1) == 'b') {
consolelog(playerw + ', your King has been put into check.');
setTimeout(function(){ ouralert(playerw + ', your King has been put into check.'); }, 5000);
} else if (btrue == 'b' && proposedmove.substring(0,1) == 'w') {
consolelog(playerb + ', your King has been put into check.');
setTimeout(function(){ ouralert(playerb + ', your King has been put into check.'); }, 5000);
} else if (btrue == ' ' && proposedmove.substring(0,1) == 'w') {
onenewmove=[];
atrue=false;
consolelog('This move has caused Kings to be too close together.');
setTimeout(function(){ ouralert('This move has caused Kings to be too close together.'); itisthiscmove='w'; }, 5000);
if (wasfs != '') {
document.getElementById('fshare').href=wasfs;
endboard=startboard;
}
return atrue;
} else if (btrue == ' ' && proposedmove.substring(0,1) == 'b') {
onenewmove=[];
atrue=false;
consolelog('This move has caused Kings to be too close together.');
setTimeout(function(){ ouralert('This move has caused Kings to be too close together.'); itisthiscmove='b'; }, 5000);
if (wasfs != '') {
document.getElementById('fshare').href=wasfs;
endboard=startboard;
}
return atrue;
}
}

//alert(amove + ' vs ' + proposedmove + ' 78 ' + document.getElementById('fshare').href + ' ' + document.getElementById('pstatus').innerHTML);
if (amove == proposedmove && amove.substring(0,1) == 'w') {
setTimeout(function(){ document.getElementById('pstatus').innerHTML=document.getElementById('pstatus').innerHTML + ' Your next move ' + playerb; }, 2500);
} else if (amove == proposedmove && amove.substring(0,1) == 'b') {
setTimeout(function(){ document.getElementById('pstatus').innerHTML=document.getElementById('pstatus').innerHTML + ' Your next move ' + playerw; }, 2500);
}
document.getElementById('fshare').href=document.getElementById('fshare').href.replace(/\&$/g, encodeURIComponent('&move='));
if (amove == proposedmove) {
var wrd1='youllneverfindthis';
var wrd2='';
var mmbits=amove.split('_');
if (document.getElementById('fshare').href.indexOf('_' + mmbits[2] + 'w') != -1) {
wrd1=(document.getElementById('fshare').href.split('_' + mmbits[2] + 'w')[0].slice(-3) + '_' + mmbits[2]).replace(/^[0-9]/g,'');
} else if (document.getElementById('fshare').href.indexOf('_' + mmbits[2] + 'b') != -1) {
wrd1=(document.getElementById('fshare').href.split('_' + mmbits[2] + 'b')[0].slice(-3) + '_' + mmbits[2]).replace(/^[0-9]/g,'');
} else if ((document.getElementById('fshare').href + '&').indexOf('_' + mmbits[2] + '&') != -1) {
wrd1=((document.getElementById('fshare').href + '&').split('_' + mmbits[2] + '&')[0].slice(-3) + '_' + mmbits[2]).replace(/^[0-9]/g,'');
}
//if (document.getElementById('fshare').href.indexOf(mmbits[0] + '_' + mmbits[1]) == -1) {
//if (document.getElementById('fshare').href.indexOf(mmbits[0] + '_' + mmbits[2]) != -1) {
// alert('oh');
//}
// alert('oops');
//}
document.getElementById('fshare').href=document.getElementById('fshare').href.replace(wrd1,wrd2).replace(mmbits[0] + '_' + mmbits[1], mmbits[0] + '_' + mmbits[2]);
endboard=document.getElementById('fshare').href;
//} else {
//alert(89);
// document.getElementById('fshare').href=document.getElementById('fshare').innerHTML; // new idea
}
if (amove != proposedmove && decodeURIComponent(document.getElementById('fshare').href).indexOf('move=' + proposedmove) == -1 && decodeURIComponent(document.getElementById('fshare').href).indexOf('move=') != -1) {
//alert('178');
if (document.getElementById('fshare').href.indexOf(encodeURIComponent('&move=')) == -1) {
document.getElementById('fshare').href=document.getElementById('fshare').href.replace('&move=',encodeURIComponent('&wmoveas=')) + encodeURIComponent('&move=');
}
document.getElementById('fshare').href=document.getElementById('fshare').href.replace('&move=',encodeURIComponent('&wmoveas=')).replace(encodeURIComponent('move='), encodeURIComponent('move=' + proposedmove + '&x=x'));
if (document.getElementById('fshare').href.indexOf('body=') != -1 && document.getElementById('fshare').href.indexOf('body=' + encodeURIComponent(document.URL.split('?')[0])) == -1) {
document.getElementById('fshare').href=document.getElementById('fshare').href.replace('body=', 'body=' + encodeURIComponent(document.URL.split('?')[0] + '?wname=' + encodeURIComponent(playerw) + '&bname=' + encodeURIComponent(playerb) + '&traditional='));
}
//alert(document.getElementById('fshare').href);

subjbit=document.getElementById('fshare').href.split('&body=')[1];
//if (eval('' + mbits.length) >= 3) {
// subjbit=subjbit.replace(encodeURIComponent(mbits[0] + '_' + mbits[1]), encodeURIComponent(mbits[0] + '_' + mbits[2]));
//}
if (proposedmove.substring(0,1) == 'w') {
if (playerb.indexOf('[') != -1 && playerb.indexOf('[]') == -1) {
if (playerb.split('[')[1].split(']')[0].indexOf('@') != -1) {
document.getElementById('fshare').href='mailto:' + playerb.split('[')[1].split(']')[0] + '?subject=Chess%20Game&body=' + subjbit.replace(/\ /g,encodeURIComponent('+'));
//alert(document.getElementById('fshare').href);
//if (document.getElementById('fshare').href.indexOf('bP2') == -1) { alert('OoPs1'); }
checkxx(document.getElementById('fshare')).click();
setTimeout(function(){ alert('Email readied for ' + playerb.split('[')[1].split(']')[0]); }, 15000);
} else {
document.getElementById('fshare').href='sms:' + playerb.split('[')[1].split(']')[0] + '&body=' + subjbit.replace(/\ /g,encodeURIComponent('+'));
//alert(document.getElementById('fshare').href);
//if (document.getElementById('fshare').href.indexOf('bP2') == -1) { alert('OoPs2'); }
checkxx(document.getElementById('fshare')).click();
setTimeout(function(){ alert('SMS readied for ' + playerb.split('[')[1].split(']')[0]); }, 15000);
}
}
} else if (proposedmove.substring(0,1) == 'b') {
if (playerw.indexOf('[') != -1 && playerw.indexOf('[]') == -1) {
if (playerw.split('[')[1].split(']')[0].indexOf('@') != -1) {
document.getElementById('fshare').href='mailto:' + playerw.split('[')[1].split(']')[0] + '?subject=Chess%20Game&body=' + subjbit.replace(/\ /g,encodeURIComponent('+'));
//alert(document.getElementById('fshare').href);
//if (document.getElementById('fshare').href.indexOf('bP2') == -1) { alert('OoPs3'); }
checkxx(document.getElementById('fshare')).click();
setTimeout(function(){ alert('Email readied for ' + playerw.split('[')[1].split(']')[0]); }, 15000);
} else {
document.getElementById('fshare').href='sms:' + playerw.split('[')[1].split(']')[0] + '&body=' + subjbit.replace(/\ /g,encodeURIComponent('+'));
//alert(document.getElementById('fshare').href);
//if (document.getElementById('fshare').href.indexOf('bP2') == -1) { alert('OoPs4'); }
checkxx(document.getElementById('fshare')).click();
setTimeout(function(){ alert('SMS readied for ' + playerw.split('[')[1].split(']')[0]); }, 15000);
}
}
}
}
}
return atrue;
}

function checkxx(ina) {
var inas=ina.href.split('&x=x'), opiece='', ineas='';
var inase=ina.href.split(encodeURIComponent('&x=x'));
if (inas.length != 1) {
opiece=(amove + ina.href.split('&x=x')[eval(-1 + ina.href.split('&x=x').length)].split('&')[0]).split('_')[0];
if (opiece != '') {
//alert(65);
if (inas[0].indexOf(opiece) == -1) {
//alert(165);
var tos=document.getElementById('mytable').innerHTML.split(' data-piece="' + opiece + '"');
if (tos.length != 1) {
//alert(265);
var newsq=tos[0].split(' data-square="')[eval(-1 + tos[0].split(' data-square="').length)].split('"')[0];
//alert(ina.href);
ina.href=ina.href.replace(encodeURIComponent('traditional='), encodeURIComponent('traditional=' + opiece + '_' + newsq)).replace('traditional=', 'traditional=' + opiece + '_' + newsq);
}
}
}
inas=ina.href.split(('&x=x'));
ineas=(ina.href.replace(inas[0],'')).split(('&wname='))[0].split(('&bname='))[0].split(('&move='))[0];
if (ineas != '') { ina.href=ina.href.replace(ineas, '&x.x'); }
if (ina.href.split('body=')[1].indexOf((document.URL.replace('https:','http:').split('?')[0] + '?traditional=')) > 0) {
ina.href=ina.href.replace((document.URL.replace('https:','http:').split('?')[0] + '?traditional='), '');
}
} else if (inase.length != 1) {
opiece=(amove + ina.href.split(encodeURIComponent('&x=x'))[eval(-1 + ina.href.split(encodeURIComponent('&x=x')).length)].split(encodeURIComponent('&'))[0]).split('_')[0];
if (opiece != '') {
//alert('465 ' + opiece);
if (inase[0].indexOf(opiece) == -1) {
//alert(1165);
var tos=document.getElementById('mytable').innerHTML.split(' data-piece="' + opiece + '"');
if (tos.length != 1) {
//alert(1265);
var newsq=tos[0].split(' data-square="')[eval(-1 + tos[0].split(' data-square="').length)].split('"')[0];
ina.href=ina.href.replace(encodeURIComponent('traditional='), encodeURIComponent('traditional=' + opiece + '_' + newsq)).replace('traditional=', 'traditional=' + opiece + '_' + newsq);
//alert(ina.href);
}
}
}
inase=ina.href.split(encodeURIComponent('&x='));
ineas=(ina.href.replace(inase[0],'')).split(encodeURIComponent('&wname='))[0].split(encodeURIComponent('&bname='))[0].split(encodeURIComponent('&move='))[0];
if (ineas != '') { ina.href=ina.href.replace(ineas, encodeURIComponent('&x=x')); }
if (ina.href.split('body=')[1].indexOf(encodeURIComponent(document.URL.replace('https:','http:').split('?')[0] + '?traditional=')) > 0) {
ina.href=ina.href.replace(encodeURIComponent(document.URL.replace('https:','http:').split('?')[0] + '?traditional='), '');
}
}
if (document.URL.indexOf('draughts') != -1) {
ina.href=ina.href.replace(/move/g, 'draughts').replace(/Chess/g, 'Draughts');
}
return ina;
}

function consolelog(what) {
if (document.URL.indexOf('/chess') != -1) {
if (what.indexOf('Chess piece ') != -1) {
if (what.indexOf(' from square ') != -1) {
if (what.indexOf(' square ') != -1) {
lastmove=what.split('Chess piece ')[1].split(' ')[0] + '_' + what.split('Chess piece ')[1].split(' from square ')[1].split(' ')[0] + '_' + what.split('Chess piece ')[1].split(' from square ')[1].split(' square ')[1].split(' ')[0];
}
}
}
if (document.getElementById('pstatus')) {
if (document.getElementById('pstatus').innerHTML.indexOf(' ... Your next move ') != -1) {
document.getElementById('pstatus').innerHTML=('Move just made by ' + document.getElementById('pstatus').innerHTML.split('Your next move ')[eval(-1 + document.getElementById('pstatus').innerHTML.split('Your next move ').length)] + ' ... ' + what).replace(/\ \(black\)\ \(black\)/g,' (black)').replace(/\ \(white\)\ \(white\)/g,' (white)');
} else {
document.getElementById('pstatus').innerHTML+=(' ... ' + what.split(' ... ')[0] + ' ... ').replace(/\ \(black\)\ \(black\)/g,' (black)').replace(/\ \(white\)\ \(white\)/g,' (white)');
}
}
}
if (document.URL.indexOf('draughts') != -1) {
document.getElementById('pstatus').innerHTML=document.getElementById('pstatus').innerHTML.replace(/Chess\ /g, 'Draughts ');
console.log(what.replace(/Chess\ /g, 'Draughts '));
} else {
console.log(what);
}
}

function ouralert(what) {
if (document.URL.indexOf('/chess') != -1) {
if (document.getElementById('pstatus')) {
if (document.getElementById('pstatus').innerHTML.indexOf(' ... ') != -1) {
if (document.getElementById('pstatus').innerHTML.indexOf(' ... Your next move ') != -1) {
document.getElementById('pstatus').innerHTML='Move just made by ' + document.getElementById('pstatus').innerHTML.split('Your next move ')[eval(-1 + document.getElementById('pstatus').innerHTML.split('Your next move ').length)] + ' ... ' + what;
} else {
document.getElementById('pstatus').innerHTML+=' ... ' + what.split(' ... ')[0] + ' ... ';
}
}
}
}
if (document.URL.indexOf('draughts') != -1) { return alert(what.replace(/Chess\ /g, 'Draughts ')); }
return alert(what);
}

function rerefit() {
document.title=wastitle;
}

function delayedrefit() {
refit(gev);
}

function refit(ev) {
var waspl=prelegal;
prelegal=true;
if (wastitle == '') { wastitle=document.title; }
//document.title=itisthiscmove + ' ' + ev.target.id + ' at refit';

//if (ev.target.id == 'mytable') { document.title='mytable'; return true; }

//alert(15643);
if (lastitisthiscmove != itisthiscmove && ev.target.id != 'mytable') {
//alert(5643);
ppt=false;
//document.title=itisthiscmove + ' ' + ev.target.id + ' 1 at refit';
if (itisthiscmove != '' && itisthiscmove != (ev.target.outerHTML.split(' data-piece="')[1]).substring(0,1)) {
if (waspl) { ouralert('It is not your turn.'); }
} else {
lastitisthiscmove=(itisthiscmove + ev.target.outerHTML.split(' data-piece="')[1]).substring(0,1);
itisthiscmove=lastitisthiscmove;
if (itisthiscmove == 'b') {
consolelog('Your next move ' + playerb + ' ... ');
} else {
consolelog('Your next move ' + playerw + ' ... ');
}
//ouralert('no1 ' + lastitisthiscmove + ' ' + itisthiscmove + ' ' + ev.target.id);
if (ev.target.outerHTML.indexOf(' data-piece="') != -1) {
if (ev.target.outerHTML.split(' data-piece="')[1].substring(0,1) == (itisthiscmove + ev.target.outerHTML.split(' data-piece="')[1].substring(0,1)).substring(0,1)) {
//document.title=itisthiscmove + ' ' + ev.target.id + ' 1.0 at refit';
lohfulloh=ev.target.outerHTML;
newlohfulloh=ev.target.outerHTML;
hostid=bigv(newlohfulloh).split(' id="')[1].split('"')[0];
lastid=ev.target.id;
}
}
}
} else if (newlohfulloh != ev.target.outerHTML && ev.target.id != 'mytable') {
//ouralert('yes0 ' + lastitisthiscmove + ' ' + itisthiscmove + ' ' + ev.target.id);
lohfulloh=newlohfulloh;
//document.title=itisthiscmove + ' ' + ev.target.id + ' 2 at refit';
lastoh=newlohfulloh; //ev.target.outerHTML;
lastih='>' + newlohfulloh.split('</')[0].split('>')[eval(-1 + newlohfulloh.split('</')[0].split('>').length)] + '<'; //'>' + ev.target.innerHTML + '<';
console.log('yes ' + lastitisthiscmove + ' ' + itisthiscmove + ' ' + ev.target.id);
if (lohfulloh != '') {
console.log("lohfulloh=" + lohfulloh);
//ouralert('yes2 ' + lastitisthiscmove + ' ' + itisthiscmove + ' ' + ev.target.id);
if (lohfulloh.indexOf(' data-piece="') != -1) {
//ouralert('yes3 ' + lastitisthiscmove + ' ' + itisthiscmove + ' ' + ev.target.id);
if (ev.target.outerHTML.indexOf(' data-piece="') != -1 && ev.target.outerHTML != lohfulloh) {
//ouralert('yes4 ' + lastitisthiscmove + ' ' + itisthiscmove + ' ' + ev.target.id);
if (ev.target.outerHTML.split(' data-piece="')[1].substring(0,1) != lohfulloh.split(' data-piece="')[1].substring(0,1)) {
//ouralert('yes5 ' + lastitisthiscmove + ' ' + itisthiscmove + ' ' + ev.target.id);
console.log('Potential piece take');
ppt=true;
}
}
}
}
lastid=ev.target.id;
bcklastid=lastid;
loh=ev.target.id;
lohoh=bigv(ev.target.outerHTML.split('>')[0] + '></' + ev.target.outerHTML.substring(1).split(' ')[0].split('>')[0] + '>');


console.log("Drop 3");
if (newlohfulloh.indexOf(' data-piece="' + itisthiscmove + 'R') != -1 && ev.target.outerHTML.indexOf(' data-piece="' + itisthiscmove + 'K') != -1) {
if (mightbecastling(ev.target.outerHTML.split(' data-piece="')[1].split('"')[0], newlohfulloh.split(' data-piece="')[1].split('"')[0], ev.target.outerHTML, newlohfulloh) == 1) {
prelegal=false;
}
} else if (newlohfulloh.indexOf(' data-piece="' + itisthiscmove + 'K') != -1 && ev.target.outerHTML.indexOf(' data-piece="' + itisthiscmove + 'R') != -1) {
if (mightbecastling(ev.target.outerHTML.split(' data-piece="')[1].split('"')[0], newlohfulloh.split(' data-piece="')[1].split('"')[0], ev.target.outerHTML, newlohfulloh) == 1) {
prelegal=false;
}
}

if (!prelegal) {
//ouralert('Illegal move ... please start again');
lastitisthiscmove = itisthiscmove + ' ';
//ouralert(lastitisthiscmove + '!');
hostid='';
} else if (islegal()) {
//alert(5645);
if (hostid != '') {
document.getElementById(hostid).innerHTML='';
} else {
document.getElementById('mytable').innerHTML=document.getElementById('mytable').innerHTML.replace(newlohfulloh, '');
}
gev=ev;
setTimeout(gevit,1500); //ev.target.innerHTML=newlohfulloh;
//itisthiscmove=itisthiscmove.replace('w','B').replace('b','W').toLowerCase();
lastitisthiscmove = itisthiscmove + ' ';
hostid='';
} else {
if (waspl) { ouralert('Illegal move ... please start again'); }
lastitisthiscmove = itisthiscmove + ' ';
hostid='';
}


// }
}
setTimeout(rerefit, 3000);
}

function gevit() {
gev.target.innerHTML=newlohfulloh;
if (document.getElementById(newlohfulloh.split(' id="')[1].split('"')[0])) {
adddrop(newlohfulloh.split(' id="')[1].split('"')[0]);
}
//ouralert('' + gev.target.id + '=' + newlohfulloh);
newlohfulloh='';
lastitisthiscmove = itisthiscmove + ' ';
}

function dodoms() {
var stopit=false;
if (document.getElementById('span4') && fouroh == '') { fouroh=document.getElementById('span4').outerHTML; }
if (document.getElementById('span5') && wsixoh == '') { wsixoh=document.getElementById('span5').outerHTML; }
if (document.getElementById('span6') && sixoh == '') { sixoh=document.getElementById('span6').outerHTML; }
if (document.getElementById('span0') && spanzero == '') { spanzero=document.getElementById('span0').outerHTML; }
if (document.getElementById('span1') && spanfive == '') { spanfive=document.getElementById('span1').outerHTML; }
if (document.getElementById('td22') && tdtte == '') { tdtte=document.getElementById('td22').outerHTML.split('>')[0] + '></td>'; }
if (document.getElementById('td211') && wtdtte == '') { wtdtte=document.getElementById('td211').outerHTML.split('>')[0] + '></td>'; }
if (document.getElementById('td193') && wwtdtte == '') { wwtdtte=document.getElementById('td193').outerHTML.split('>')[0] + '></td>'; }
if (document.getElementById('td11') && wwwtdtte == '') { wwwtdtte=document.getElementById('td11').outerHTML.split('>')[0] + '></td>'; }

if (nextmove != -1) {
var tds=document.getElementsByTagName('td');
for (var itds=0; itds<tds.length; itds++) {
if (tds[itds].outerHTML.indexOf(' data-square="' + nextmove + '"') != -1) {
if (tds[itds].innerHTML.indexOf('</span>') != -1) {
document.getElementById(tds[itds].innerHTML.split(' id="')[1].split('"')[0]).click();
} else {
tds[itds].click();
}
}
}
nextmove=-1;
}

if (document.getElementById('pstatus')) {
if (document.getElementById('pblack')) {
playerb=document.getElementById('pblack').innerText;
}
if (document.getElementById('pwhite')) {
playerw=document.getElementById('pwhite').innerText;
}
if (eval('' + ('' + document.getElementById('pstatus').getAttribute('data-decided')).replace(/^null$/g,'').replace(/^undefined$/g,'').length) == 2) {
if (document.getElementById('pblack')) {
document.getElementById('pblack').style.display='none';
}
if (document.getElementById('pwhite')) {
document.getElementById('pwhite').style.display='none';
}
if (document.getElementById('pvs')) {
document.getElementById('pvs').style.display='none';
}
if (playerb != 'Black' && playerb.indexOf('(black)') == -1) {
playerb+=' (black)';
}
if (playerw != 'White' && playerw.indexOf('(white)') == -1) {
playerw+=' (white)';
}
fixabw(playerb, playerw);
document.getElementById('pstatus').setAttribute('data-decided', document.getElementById('pstatus').getAttribute('data-decided') + ' ');
}

if (eval('' + ('' + document.getElementById('pstatus').getAttribute('data-decided')).replace(/^null$/g,'').replace(/^undefined$/g,'').length) == 3) {
if (document.getElementById('pstatus').innerText == '') {
document.getElementById('pstatus').innerHTML='Welcome to the Chess Game between ' + playerb + ' (black) and ' + playerw + ' (white).';
}
document.getElementById('pstatus').setAttribute('data-decided', document.getElementById('pstatus').getAttribute('data-decided') + ' ');
}

if (eval('' + ('' + document.getElementById('pstatus').getAttribute('data-decided')).replace(/^null$/g,'').replace(/^undefined$/g,'').length) == 4) {
if (itisthiscmove != '') {
if (itisthiscmove == 'b') {
document.getElementById('pstatus').setAttribute('data-decided', document.getElementById('pstatus').getAttribute('data-decided') + ' ');
if (playerb.indexOf(']') == -1) { document.getElementById('pstatus').innerHTML='Your first move ' + playerb + ' ... '; }
} else {
document.getElementById('pstatus').setAttribute('data-decided', document.getElementById('pstatus').getAttribute('data-decided') + ' ');
if (playerw.indexOf(']') == -1) { document.getElementById('pstatus').innerHTML='Your first move ' + playerw + ' ... '; }
}
} else if (lastoh.indexOf(' data-piece="') != -1) {
if (lastoh.indexOf(' data-piece="b') != -1) {
document.getElementById('pstatus').setAttribute('data-decided', document.getElementById('pstatus').getAttribute('data-decided') + ' ');
if (playerb.indexOf(']') == -1) { document.getElementById('pstatus').innerHTML='Your first move ' + playerb + ' ... '; }
} else {
document.getElementById('pstatus').setAttribute('data-decided', document.getElementById('pstatus').getAttribute('data-decided') + ' ');
if (playerw.indexOf(']') == -1) { document.getElementById('pstatus').innerHTML='Your first move ' + playerw + ' ... '; }
}
}
}

if (eval('' + ('' + document.getElementById('pstatus').getAttribute('data-decided')).replace(/^null$/g,'').replace(/^undefined$/g,'').length) == 5) {
}
}
for (var ikj=0; ikj<domcmds.length; ikj++) {
if (!stopit && domcmds[ikj] != '') {
stopit=true;
//if (prompt(domcmds[ikj], domcmds[ikj])) {
//if (navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i)) {
// var huh=prompt(domcmds[ikj], domcmds[ikj]);
//}
if (document.URL.indexOf('/chess') != -1) {
eval(domcmds[ikj]);
//rejig();
}
//}
domcmds[ikj]='';

}
}
//domcmds=[];
setTimeout(dodoms, 1000);
}

function innards(inele) {
var outele=inele;
if (inele.indexOf('<span') > 0) {
outele='<span' + inele.split('</span>')[0].split('<span')[eval(-1 + inele.split('</span>')[0].split('<span').length)] + '</span>';
}
//ouralert('innards:' + outele);
return outele;
}

function adddrop(inelid) {
document.getElementById(inelid).addEventListener("drop", (ev) => {
console.log("Drop 1");
if (lohfulloh != '') {
console.log("lohfulloh=" + lohfulloh);
if (lohfulloh.indexOf(' data-piece="') != -1) {
if (ev.target.outerHTML.indexOf(' data-piece="') != -1 && ev.target.outerHTML != lohfulloh) {
if (ev.target.outerHTML.split(' data-piece="')[1].substring(0,1) != lohfulloh.split(' data-piece="')[1].substring(0,1)) {
console.log('Potential piece take');
ppt=true;
}
}
}
}
loh=ev.target.id;
lohoh=bigv(ev.target.outerHTML.split('>')[0] + '></' + ev.target.outerHTML.substring(1).split(' ')[0].split('>')[0] + '>');
//if (navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i)) {
// document.title='ev.preventDefault(); //1';
//}
ev.preventDefault();
// Get the data, which is the id of the source element
const data = ev.dataTransfer.getData("text");
const source = document.getElementById(data);

console.log('' + ev.target.id);
if (!document.getElementById('callback')) {
lastevid=ev.target.id;
//ouralert(lastevid);
//ev.target.setAttribute('draggable', true);
if (lastoh == '') {
//ouralert('suspicious ' + document.getElementById(sourceid).outerHTML);
lastoh=ev.target.outerHTML;
lastih='>' + ev.target.innerHTML + '<';
lastid=ev.target.id;
} else if (prefx == 'span') {
if (lastid.indexOf(' ') != -1) {
lastid=lastid.trim();
} else {
lastid=ev.target.id;
}
}
if (document.URL.indexOf('/chess') != -1) {
setTimeout(lastohit, 1000);
if (('' + ev.target.style.backgroundColor).indexOf(',0.6') != -1 || ('' + ev.target.style.backgroundColor).indexOf(',0.5') != -1) {
//ouralert('564 ' + ev.target.getAttribute('data-square'));
ev.target.style.filter='invert(1)';
ev.target.style.backgroundColor='rgba(255,255,255,0.6)';
}
}
if (('' + ev.target.id).substring(0,2) == 'td' && secs > 0 && document.URL.indexOf('/planet_') == -1) {
score+=eval(ev.target.innerHTML.substring(0,1));
}
} else if (document.getElementById('callback')) {
secs++;
if (('' + ev.target.getAttribute('data-answer')) == ('' + document.getElementById('source').getAttribute('data-answer')) || ('' + ev.target.getAttribute('data-answer')) == ('' + document.getElementById(sourceid).getAttribute('data-answer'))) {
score++;
document.getElementById('score').innerHTML='Score: ' + score + '/' + secs + '';
} else {
document.getElementById('score').innerHTML='Score: ' + score + '/' + secs + '';
if (document.getElementById('source').outerHTML.indexOf('<ta' + 'ble') == 0) {
ouralert(('Correct answer was ' + document.getElementById(sourceid).getAttribute('data-answer')).replace('null',''));
} else {
ouralert(('Correct answer was ' + document.getElementById('source').getAttribute('data-answer')).replace('null',''));
}
}
location.href=document.getElementById('callback').value + '?score=' + score + '&secs=' + secs;
}
if (1 == 2) {
clonedatatwo=document.getElementById(sourceid).outerHTML;
document.getElementById('mytable').innerHTML=document.getElementById('mytable').innerHTML.replace(clonedatatwo, '');
ev.target.innerHTML=ev.target.innerHTML.substring(0,1) + clonedatatwo;
} else if (secs > 0 && (9 == 9 || ('' + ev.target.id).substring(0,2) == 'td')) {
if (source) { source.style.cursor='progress'; }
clonedatatwo=document.getElementById(sourceid).outerHTML;
andlater();
//document.getElementById('mytable').innerHTML=document.getElementById('mytable').innerHTML.replace(clonedatatwo, '');
//ev.target.innerHTML=ev.target.innerHTML.substring(0,1) + clonedatatwo;
//document.getElementById('target').appendChild(source);
if (('' + ev.target.id).substring(0,2) != 'td') {
document.getElementById('target').insertAdjacentHTML('beforeend', clonedatatwo);
} else {
if (source) { source.style.cursor='progress'; }
ev.target.insertAdjacentHTML('beforeend', clonedatatwo);
}
} else {
try {
ev.target.appendChild(source);
} catch(ers) { }
}

if (ev.touches) {
if (ev.touches[0].pageX) {
pos3 = ev.touches[0].pageX;
pos4 = ev.touches[0].pageY;
} else {
pos3 = ev.touches[0].clientX;
pos4 = ev.touches[0].clientY;
}
console.log('pos3 = ' + pos3 + ',pos4 = ' + pos4);
} else if (ev.clientX || ev.clientY) {
pos3 = ev.clientX;
pos4 = ev.clientY;
console.log('pos3 = ' + pos3 + ' ,pos4 = ' + pos4);
} else {
pos3 = ev.pageX;
pos4 = ev.pageY;
console.log('pos3 = ' + pos3 + ', pos4 = ' + pos4);
}

});
}

function bigv(inspan) {
var outspan=inspan;
if (inspan.trim().indexOf('<span') == 0 && document.getElementById('target').innerHTML.indexOf(inspan.split('>')[0]) != -1) {
outspan='<' + document.getElementById('target').innerHTML.split(inspan.split('>')[0])[0].split('<')[eval(-1 + document.getElementById('target').innerHTML.split(inspan.split('>')[0])[0].split('<').length)];
outspan+='</' + outspan.substring(1).split(' ')[0].split('>')[0] + '>';
//ouralert('Found ' + outspan);
} //else {
//ouralert('did not find ' + inspan);
//}
return outspan;
}

function bigabb(infind) {
var prefxz='';
var outfind=infind;
var lastchr=infind.slice(-1);
var firstlk=infind.split(lastchr)[0];
var vbits=document.getElementById('target').innerHTML.split(firstlk);
if (eval('' + vbits.length) > 1) {
prefxz='<' + document.getElementById('target').innerHTML.split(firstlk)[0].split('<')[eval(-1 + document.getElementById('target').innerHTML.split(firstlk)[0].split('<').length)];
outfind=prefxz + firstlk + vbits[1].split(lastchr)[0] + lastchr;
}
return outfind;
}

function abb(infind) {
var outfind=infind;
var lastchr=infind.slice(-1);
var firstlk=infind.split(lastchr)[0];
var vbits=document.getElementById('target').innerHTML.split(firstlk);
if (eval('' + vbits.length) > 1) {
outfind=firstlk + vbits[1].split(lastchr)[0] + lastchr;
}
return outfind;
}

function epy(thething, thelook) {
if (navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i)) {
var theid=document.getElementById('mytable').innerHTML.split(thething)[0].split(' id="')[eval(-1 + document.getElementById('mytable').innerHTML.split(thething)[0].split(' id="').length)].split('"')[0];
var thenid='t' + document.getElementById('mytable').innerHTML.split(thelook.split('>')[0])[0].split(' id="t')[eval(-1 + document.getElementById('mytable').innerHTML.split(thelook.split('>')[0])[0].split(' id="t').length)].split('"')[0];
var ithing=innards(thething), thenum=-1, thetds=[], jnum=0, ijk=0;
if (thelook.indexOf(' data-square="') != -1) {
thenum=eval(thelook.split(' data-square="')[1].split('"')[0]);
thetds=document.getElementsByTagName('td');
for (ijk=0; ijk<thetds.length; ijk++) {
if (thetds[ijk].outerHTML.indexOf(' class="black"') != -1 || thetds[ijk].outerHTML.indexOf(' class="white"') != -1) { jnum++; }
if (jnum == thenum || thetds[ijk].outerHTML.indexOf(thelook.split('>')[0]) != -1) {
//ouralert(thenid + ' vs ' + thetds[ijk].id);
thenid=thetds[ijk].id;
if (thetds[ijk].outerHTML.indexOf(thelook.split('>')[0]) != -1) { jnum=-999; }
}
}
}
//ouralert("document.getElementById('" + theid + "').innerHTML=''; " + "document.getElementById('" + thenid + "').innerHTML='" + ithing + "'; ");
domcmds.push("document.getElementById('" + theid + "').innerHTML=''; ");
domcmds.push("document.getElementById('" + thenid + "').innerHTML='" + ithing + "'; ");
}
return thething;
}

function mightbecastling(pthispiece, potherpiece, pthisoh, potheroh) { // thanks to https://www.chessable.com/blog/how-to-castle-in-chess/
var pretval=0, delone='', deltwo='';
var bigih=document.getElementById('target').innerHTML;
var inpthisoh=pthisoh;
var inpotheroh=potheroh;
twosubsfrom[0]='';
if (inpthisoh.indexOf(' data-square="') == -1) {
inpthisoh='<td' + bigih.split(pthisoh)[0].split('<td')[eval(-1 + bigih.split(pthisoh)[0].split('<td').length)];
}
if (inpotheroh.indexOf(' data-square="') == -1) {
inpotheroh='<td' + bigih.split(potheroh)[0].split('<td')[eval(-1 + bigih.split(potheroh)[0].split('<td').length)];
}
if (pthispiece.substring(0,1) != potherpiece.substring(0,1)) { return -5; }
if ((pthispiece.substring(1).substring(0,1) == 'K' && eval('' + pthispiece.length) == 2) && (potherpiece.substring(1).substring(0,1) == 'R' && eval('' + potherpiece.length) == 3)) {
if (pthispiece.substring(0,1) == 'w' && inpthisoh.indexOf(' data-square="61"') != -1 && (inpotheroh.indexOf(' data-square="64"') != -1 || inpotheroh.indexOf(' data-square="57"') != -1)) {
pretval=1;
if (inpotheroh.indexOf(' data-square="57"') != -1 && (bigih.indexOf(abb(' data-square="58">') + '</') == -1 || bigih.indexOf(abb(' data-square="59">') + '</') == -1 || bigih.indexOf(abb(' data-square="60">') + '</') == -1)) {
pretval=-1;
} else if (inpotheroh.indexOf(' data-square="57"') != -1) { //newish
//document.getElementById('target').innerHTML=document.getElementById('target').innerHTML.replace(pthisoh,'').replace(potheroh,'');
//document.getElementById('target').innerHTML=document.getElementById('target').innerHTML.replace(abb(' data-square="60">') + '</', abb(' data-square="60">') + potheroh + '</').replace(abb(' data-square="59">') + '</', abb(' data-square="59">') + pthisoh + '</');

twosubsfrom[0] = 'wR1';

if (wwtdtte != '') { lohoh=wwtdtte; } //rmtwowk
//ouralert('About to Castle ' + lastoh + ' +++ ' + pthisoh + ' --- ' + innards(pthisoh));
bigih=bigih.replace(epy(pthisoh,' data-square="60">'),'').replace(epy(potheroh,' data-square="59">'),'');
if (bigih.indexOf(lohoh.split('</')[0]) != -1) { lohoh=''; } //else { ouralert('found'); }
//bigih=bigih.replace(abb(' data-square="59">') + '</span>', abb(' data-square="59">') + innards(potheroh) + '</span></td>' + bigv(lohoh).split('</td>')[0]);
bigih=bigih.replace(abb(' data-square="59">') + '</', abb(' data-square="59">') + innards(potheroh) + '</');
// + lohoh);
//ouralert('About to Castle1 the rook ' + abb(' data-square="60">') + innards(potheroh) + '</');
bigih=bigih.replace(bigabb(' data-square="60">') + '</', bigabb(' data-square="60">') + innards(pthisoh) + '</'); // + lohoh.split('</td>')[0]);
//ouralert('About to Castle2 ' + innards(potheroh));
if (!navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i)) {
document.getElementById('target').innerHTML=bigih;
}
//ouralert('About to Castle22 ' + innards(potheroh));
//ouralert('About to Castle223');
if (wwtdtte != '') {
if (navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i)) {
domcmds.push("document.getElementById('td202').innerHTML='" + wsixoh + "'; ");
domcmds.push("document.getElementById('td203').innerHTML='" + spanfive + "'; ");
domcmds.push("document.getElementById('tr8').innerHTML='" + wwtdtte + "' + document.getElementById('tr8').innerHTML; itisthiscmove='b'; consolelog('Your next move ' + playerb + ' ... '); adddrop('" + lohoh.split(' id="')[1].split('"')[0] + "'); ");
}
}
if (lohoh != '') {
adddrop(lohoh.split(' id="')[1].split('"')[0]);
lohoh='';
}



}
if (inpotheroh.indexOf(' data-square="64"') != -1 && (bigih.indexOf(abb(' data-square="62">') + '</') == -1 || bigih.indexOf(abb(' data-square="63">') + '</') == -1)) {
//ouralert(bigih.split(' data-square="62"')[1].substring(0,40) + '*62');
//ouralert(bigih.split(' data-square="63"')[1].substring(0,40) + '*63');
pretval=-1;
} else if (inpotheroh.indexOf(' data-square="64"') != -1) { //new

twosubsfrom[0] = 'wR2';


//ouralert('About to Castle ' + lastoh);
bigih=bigih.replace(epy(pthisoh,' data-square="63">'),'').replace(epy(potheroh,' data-square="62">'),'');
//ouralert('About to Castle1 the rook ' + abb(' data-square="62">') + innards(potheroh) + '</');
bigih=bigih.replace(abb(' data-square="62">') + '</', abb(' data-square="62">') + innards(potheroh) + '</');
//ouralert('About to Castle12 the king ' + abb(' data-square="63">') + innards(pthisoh) + '</ ... ' + bigih.split(' data-square="63"')[1] + ' +++ ' + lohoh);
if (bigih.indexOf(lohoh.split('</')[0]) != -1) { lohoh=''; }
bigih=bigih.replace(abb(' data-square="63">') + '</td>', abb(' data-square="63">') + innards(pthisoh) + '</td>' + lohoh);
//ouralert('About to Castle2');
if (!navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i)) {
document.getElementById('target').innerHTML=bigih;
}
//ouralert('About to Castle22');
if (lohoh != '') {
adddrop(lohoh.split(' id="')[1].split('"')[0]);
lohoh='';
}
}
}
if (pthispiece.substring(0,1) == 'b' && inpthisoh.indexOf(' data-square="5"') != -1 && (inpotheroh.indexOf(' data-square="8"') != -1 || inpotheroh.indexOf(' data-square="1"') != -1)) {
pretval=1;
if (inpotheroh.indexOf(' data-square="8"') != -1 && (bigih.indexOf(abb(' data-square="6">') + '</') == -1 || bigih.indexOf(abb(' data-square="7">') + '</') == -1)) {
pretval=-1;
} else if (inpotheroh.indexOf(' data-square="8"') != -1) { // new
//document.getElementById('target').innerHTML=document.getElementById('target').innerHTML.replace(pthisoh,'').replace(potheroh,'');
//document.getElementById('target').innerHTML=document.getElementById('target').innerHTML.replace(abb(' data-square="6">') + '</', abb(' data-square="6">') + pthisoh + '</').replace(abb(' data-square="7">') + '</', abb(' data-square="7">') + potheroh + '</');
twosubsfrom[0] = 'bR2';

//if (eightoh != '') { lohoh=eightoh; }
//ouralert('About to Castle ' + lastoh + ' +++ ' + pthisoh + ' --- ' + innards(pthisoh));

bigih=bigih.replace(epy(pthisoh, ' data-square="7">'),'').replace(epy(potheroh, ' data-square="6">'),'');
//ouralert('About to Castle1 the rook ' + abb(' data-square="6">') + innards(potheroh) + '</');
bigih=bigih.replace(abb(' data-square="6">') + '</', abb(' data-square="6">') + innards(potheroh) + '</');
//ouralert('About to Castle12 the king ' + abb(' data-square="7">') + innards(pthisoh) + '</ ... ' + bigih.split(' data-square="7"')[1] + ' +++ ' + lohoh);
if (bigih.indexOf(lohoh.split('</')[0]) != -1) { lohoh=''; } //else { ouralert('found'); }
//if (bigih.indexOf(abb(' data-square="7">') + '</') == -1) {
// ouralert('Not found ' + bigabb(' data-square="7">') + '</');
//} else {
// ouralert(' ... ' + bigv(lohoh));
//}
//bigih=bigih.replace(abb(' data-square="7">') + '</span>', abb(' data-square="7">') + innards(pthisoh) + '</span></td>' + bigv(lohoh).split('</td>')[0]);
bigih=bigih.replace(abb(' data-square="7">') + '</', abb(' data-square="7">') + innards(pthisoh) + '</');
// + lohoh);
//ouralert('About to Castle2 ' + innards(pthisoh));
if (!navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i)) {
document.getElementById('target').innerHTML=bigih;
}
if (eightoh != '') {
if (!navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i)) {
//domcmds.push("document.getElementById('td23').innerHTML='" + innards(potheroh) + "'; ");
//domcmds.push("document.getElementById('td31').innerHTML='" + innards(pthisoh) + "'; ");
//domcmds.push("document.getElementById('td32').innerHTML=''; ");
eightoh=eightoh;
} else {
document.getElementById('tr1').innerHTML+=eightoh;
document.getElementById('td31').innerHTML=innards(pthisoh);
domcmds.push("document.getElementById('td31').innerHTML='" + innards(pthisoh) + "'; ");
}
}
//ouralert('About to Castle22 ' + innards(pthisoh));
//document.getElementById('td31').innerHTML=innards(pthisoh);
//ouralert('About to Castle223');
if (lohoh != '') {
adddrop(lohoh.split(' id="')[1].split('"')[0]);
lohoh='';
}



}
if (inpotheroh.indexOf(' data-square="1"') != -1 && (bigih.indexOf(abb(' data-square="4">') + '</') == -1 || bigih.indexOf(abb(' data-square="2">') + '</') == -1 || bigih.indexOf(abb(' data-square="3">') + '</') == -1)) {
pretval=-1;
} else if (inpotheroh.indexOf(' data-square="1"') != -1) { //newer
//document.getElementById('target').innerHTML=document.getElementById('target').innerHTML.replace(pthisoh,'').replace(potheroh,'');
//document.getElementById('target').innerHTML=document.getElementById('target').innerHTML.replace(abb(' data-square="3">') + '</', abb(' data-square="3">') + pthisoh + '</').replace(abb(' data-square="4">') + '</', abb(' data-square="4">') + potheroh + '</');

twosubsfrom[0] = 'bR1';

if (wwwtdtte != '') { lohoh=wwwtdtte; } //rmtwowk4
//ouralert('About to Castle ' + lastoh + ' +++ ' + pthisoh + ' --- ' + innards(pthisoh));
bigih=bigih.replace(epy(pthisoh,' data-square="4">'),'').replace(epy(potheroh,' data-square="3">'),'');
if (bigih.indexOf(lohoh.split('</')[0]) != -1) { lohoh=''; } //else { ouralert('found'); }
//bigih=bigih.replace(abb(' data-square="3">') + '</span>', abb(' data-square="3">') + innards(potheroh) + '</span></td>' + bigv(lohoh).split('</td>')[0]);
bigih=bigih.replace(abb(' data-square="3">') + '</', abb(' data-square="3">') + innards(potheroh) + '</');
// + lohoh);
//ouralert('About to Castle1 the rook ' + abb(' data-square="4">') + innards(potheroh) + '</');
bigih=bigih.replace(bigabb(' data-square="4">') + '</', bigabb(' data-square="4">') + innards(pthisoh) + '</'); // + lohoh.split('</td>')[0]);
//ouralert('About to Castle2 ' + innards(potheroh));
if (!navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i)) {
document.getElementById('target').innerHTML=bigih;
}
//ouralert('About to Castle22 ' + innards(potheroh));
//ouralert('About to Castle223');
if (wwwtdtte != '') {
if (!navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i)) {
domcmds.push("document.getElementById('td13').innerHTML='" + fouroh + "'; ");
domcmds.push("document.getElementById('td21').innerHTML='" + spanzero + "'; ");
domcmds.push("document.getElementById('tr1').innerHTML='" + wwwtdtte + "' + document.getElementById('tr1').innerHTML; itisthiscmove='w'; consolelog('Your next move ' + playerw + ' ... '); adddrop('" + lohoh.split(' id="')[1].split('"')[0] + "'); ");
}
}
if (lohoh != '') {
adddrop(lohoh.split(' id="')[1].split('"')[0]);
lohoh='';
}



}
}
} else if ((potherpiece.substring(1).substring(0,1) == 'K' && eval('' + potherpiece.length) == 2) && (pthispiece.substring(1).substring(0,1) == 'R' && eval('' + pthispiece.length) == 3)) {

if (potherpiece.substring(0,1) == 'w' && inpotheroh.indexOf(' data-square="61"') != -1 && (inpthisoh.indexOf(' data-square="64"') != -1 || inpthisoh.indexOf(' data-square="57"') != -1)) {
pretval=1;
if (inpthisoh.indexOf(' data-square="57"') != -1 && (bigih.indexOf(abb(' data-square="58">') + '</') == -1 || bigih.indexOf(abb(' data-square="59">') + '</') == -1 || bigih.indexOf(abb(' data-square="60">') + '</') == -1)) {
pretval=-1;
} else if (inpthisoh.indexOf(' data-square="57"') != -1) { // new
//document.getElementById('target').innerHTML=document.getElementById('target').innerHTML.replace(pthisoh,'').replace(potheroh,'');
//document.getElementById('target').innerHTML=document.getElementById('target').innerHTML.replace(abb(' data-square="60">') + '</', abb(' data-square="60">') + pthisoh + '</').replace(abb(' data-square="59">') + '</', abb(' data-square="59">') + potheroh + '</');

twosubsfrom[0] = 'wR1';


if (wtdtte != '') { lohoh=wtdtte; } //rmtwow
//ouralert('About to Castle ' + lastoh + ' +++ ' + pthisoh + ' --- ' + innards(pthisoh));
bigih=bigih.replace(epy(pthisoh,' data-square="60">'),'').replace(epy(potheroh,' data-square="59">'),'');
if (bigih.indexOf(lohoh.split('</')[0]) != -1) { lohoh=''; } //else { ouralert('found'); }
//bigih=bigih.replace(abb(' data-square="59">') + '</span>', abb(' data-square="59">') + innards(potheroh) + '</span></td>' + bigv(lohoh).split('</td>')[0]);
bigih=bigih.replace(abb(' data-square="59">') + '</', abb(' data-square="59">') + innards(potheroh) + '</');
// + lohoh);
//ouralert('About to Castle1 the rook ' + abb(' data-square="60">') + innards(potheroh) + '</');
bigih=bigih.replace(bigabb(' data-square="60">') + '</', bigabb(' data-square="60">') + innards(pthisoh) + '</'); // + lohoh.split('</td>')[0]);
//ouralert('About to Castle2 ' + innards(potheroh));
if (!navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i)) {
document.getElementById('target').innerHTML=bigih;
}
//ouralert('About to Castle22 ' + innards(potheroh));
//ouralert('About to Castle223');
if (wtdtte != '') {
if (!navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i)) {

//document.getElementById('td202').innerHTML=sixoh;
domcmds.push("document.getElementById('td202').innerHTML='" + wsixoh + "'; ");
//document.getElementById('td203').innerHTML=spanzero;
domcmds.push("document.getElementById('td203').innerHTML='" + spanfive + "'; ");
//document.getElementById('td22').innerHTML='';
//domcmds.push("document.getElementById('td22').innerHTML=''; ");
domcmds.push("document.getElementById('tr8').innerHTML=document.getElementById('tr8').innerHTML.replace('" + spanfive + "', '" + spanfive + "</td>' + '" + wtdtte.split('</td>')[0] + "'); itisthiscmove='b'; consolelog('Your next move ' + playerb + ' ... '); adddrop('" + lohoh.split(' id="')[1].split('"')[0] + "'); ");
}
}
if (lohoh != '') {
adddrop(lohoh.split(' id="')[1].split('"')[0]);
lohoh='';
}



}
if (inpthisoh.indexOf(' data-square="64"') != -1 && (bigih.indexOf(abb(' data-square="62">') + '</') == -1 || bigih.indexOf(abb(' data-square="63">') + '</') == -1)) {
ouralert(bigih.split(' data-square="62"')[1].substring(0,40) + '!62');
ouralert(bigih.split(' data-square="63"')[1].substring(0,40) + '!63');
pretval=-1;
} else if (inpthisoh.indexOf(' data-square="64"') != -1) { // new
//ouralert('About to castle');
//document.getElementById('target').innerHTML=document.getElementById('target').innerHTML.replace(pthisoh,'').replace(potheroh,'');
//ouralert('About to castle1');
//document.getElementById('target').innerHTML=document.getElementById('target').innerHTML.replace(abb(' data-square="63">') + '</', abb(' data-square="63">') + pthisoh + '</').replace(abb(' data-square="62">') + '</', abb(' data-square="62">') + potheroh + '</');
//ouralert('About to castle2');
twosubsfrom[0] = 'wR2';

//ouralert('About to Castle ' + lastoh);
bigih=bigih.replace(epy(pthisoh,' data-square="62">'),'').replace(epy(potheroh,' data-square="63">'),'');
if (bigih .indexOf(lohoh.split('</')[0]) != -1) { lohoh=''; }
//ouralert('About to Castle12 the king ' + abb(' data-square="63">') + innards(pthisoh) + '</ ... ' + bigih.split(' data-square="63"')[1] + ' +++ ' + lohoh);
bigih=bigih.replace(abb(' data-square="63">') + '</td>', abb(' data-square="63">') + innards(potheroh) + '</td>');
//ouralert('About to Castle2');
//ouralert('About to Castle1 the rook ' + abb(' data-square="62">') + innards(potheroh) + '</');
if (lohoh == '') {
bigih=bigih.replace(abb(' data-square="62">') + '</', abb(' data-square="62">') + innards(pthisoh) + '</');
} else {
bigih=bigih.replace(bigabb(' data-square="62">') + '</', lohoh + bigabb(' data-square="62">') + innards(pthisoh) + '</');
}
if (!navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i)) {
document.getElementById('target').innerHTML=bigih;
}
//ouralert('About to Castle22');
if (lohoh != '') {
adddrop(lohoh.split(' id="')[1].split('"')[0]);
lohoh='';
}

}
}
if (potherpiece.substring(0,1) == 'b' && inpotheroh.indexOf(' data-square="5"') != -1 && (inpthisoh.indexOf(' data-square="8"') != -1 || inpthisoh.indexOf(' data-square="1"') != -1)) {
pretval=1;
if (inpthisoh.indexOf(' data-square="8"') != -1 && (bigih.indexOf(abb(' data-square="6">') + '</') == -1 || bigih.indexOf(abb(' data-square="7">') + '</') == -1)) {
pretval=-1;
} else if (inpthisoh.indexOf(' data-square="8"') != -1) { // new if
//document.getElementById('target').innerHTML=document.getElementById('target').innerHTML.replace(pthisoh,'').replace(potheroh,'');
//document.getElementById('target').innerHTML=document.getElementById('target').innerHTML.replace(abb(' data-square="6">') + '</', abb(' data-square="6">') + potheroh + '</').replace(abb(' data-square="7">') + '</', abb(' data-square="7">') + pthisoh + '</');
twosubsfrom[0] = 'bR2';


//if (eightoh != '') { lohoh=eightoh; } //rm
//ouralert('About to Castle ' + lastoh + ' +++ ' + pthisoh + ' --- ' + innards(pthisoh));
bigih=bigih.replace(epy(pthisoh,' data-square="6">'),'').replace(epy(potheroh,' data-square="7">'),'');
//ouralert('About to Castle12 the king ' + abb(' data-square="7">') + innards(potheroh) + '</ ... ' + bigih.split(' data-square="7"')[1] + ' +++ ' + lohoh);
if (bigih.indexOf(lohoh.split('</')[0]) != -1) { lohoh=''; } //else { ouralert('found'); }
//if (bigih.indexOf(abb(' data-square="7">') + '</') == -1) {
// ouralert('Not found ' + bigabb(' data-square="7">') + '</');
//} else {
// ouralert(' ... ' + bigv(lohoh));
//}
//bigih=bigih.replace(abb(' data-square="7">') + '</span>', abb(' data-square="7">') + innards(potheroh) + '</span></td>' + bigv(lohoh).split('</td>')[0]);
bigih=bigih.replace(abb(' data-square="7">') + '</', abb(' data-square="7">') + innards(potheroh) + '</');
// + lohoh);
//ouralert('About to Castle1 the rook ' + abb(' data-square="6">') + innards(potheroh) + '</');
bigih=bigih.replace(bigabb(' data-square="6">') + '</', lohoh + bigabb(' data-square="6">') + innards(pthisoh) + '</');
//ouralert('About to Castle2 ' + innards(potheroh));
if (!navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i)) {
document.getElementById('target').innerHTML=bigih;
}
//ouralert('About to Castle22 ' + innards(potheroh));
//document.getElementById('td31').innerHTML=innards(potheroh);
//ouralert('About to Castle223');
if (sixoh != '') {
if (!navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i)) {
//document.getElementById('tr1').innerHTML+=eightoh;
document.getElementById('td23').innerHTML=sixoh;
domcmds.push("document.getElementById('td23').innerHTML='" + sixoh + "'; ");
}
}
if (lohoh != '') {
adddrop(lohoh.split(' id="')[1].split('"')[0]);
lohoh='';
}



}
if (inpthisoh.indexOf(' data-square="1"') != -1 && (bigih.indexOf(abb(' data-square="4">') + '</') == -1 || bigih.indexOf(abb(' data-square="2">') + '</') == -1 || bigih.indexOf(abb(' data-square="3">') + '</') == -1)) {
pretval=-1;
} else if (inpthisoh.indexOf(' data-square="1"') != -1) { // new if
//document.getElementById('target').innerHTML=document.getElementById('target').innerHTML.replace(pthisoh,'').replace(potheroh,'');
//document.getElementById('target').innerHTML=document.getElementById('target').innerHTML.replace(abb(' data-square="3">') + '</', abb(' data-square="3">') + potheroh + '</').replace(abb(' data-square="4">') + '</', abb(' data-square="4">') + pthisoh + '</');

twosubsfrom[0] = 'bR1';

if (tdtte != '') { lohoh=tdtte; } //rmtwo
//ouralert('About to Castle ' + lastoh + ' +++ ' + pthisoh + ' --- ' + innards(pthisoh));
bigih=bigih.replace(epy(pthisoh,' data-square="4">'),'').replace(epy(potheroh,' data-square="3">'),'');
//ouralert('About to Castle12 the king ' + abb(' data-square="7">') + innards(potheroh) + '</ ... ' + bigih.split(' data-square="7"')[1] + ' +++ ' + lohoh);
if (bigih.indexOf(lohoh.split('</')[0]) != -1) { lohoh=''; } //else { ouralert('found'); }
//if (bigih.indexOf(abb(' data-square="7">') + '</') == -1) {
// ouralert('Not found ' + bigabb(' data-square="7">') + '</');
//} else {
// ouralert(' ... ' + bigv(lohoh));
//}
//bigih=bigih.replace(abb(' data-square="3">') + '</span>', abb(' data-square="3">') + innards(potheroh) + '</span></td>' + bigv(lohoh).split('</td>')[0]);
bigih=bigih.replace(abb(' data-square="3">') + '</', abb(' data-square="3">') + innards(potheroh) + '</');
// + lohoh);
//ouralert('About to Castle1 the rook ' + abb(' data-square="4">') + innards(potheroh) + '</');
bigih=bigih.replace(bigabb(' data-square="4">') + '</', bigabb(' data-square="4">') + innards(pthisoh) + '</'); // + lohoh.split('</td>')[0]);
//ouralert('About to Castle2 ' + innards(potheroh));
if (!navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i)) {
document.getElementById('target').innerHTML=bigih;
}
//ouralert('About to Castle22 ' + innards(potheroh));
//document.getElementById('td31').innerHTML=innards(potheroh);
//ouralert('About to Castle223');
if (tdtte != '') {
if (!navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i)) {

//document.getElementById('td13').innerHTML=sixoh;
domcmds.push("document.getElementById('td13').innerHTML='" + sixoh + "'; ");
//document.getElementById('td21').innerHTML=spanzero;
domcmds.push("document.getElementById('td21').innerHTML='" + spanzero + "'; ");
//document.getElementById('td22').innerHTML='';
//domcmds.push("document.getElementById('td22').innerHTML=''; ");
domcmds.push("document.getElementById('tr1').innerHTML=document.getElementById('tr1').innerHTML.replace('" + spanzero + "', '" + spanzero + "</td>' + '" + tdtte.split('</td>')[0] + "'); itisthiscmove='w'; consolelog('Your next move ' + playerw + ' ... '); adddrop('" + lohoh.split(' id="')[1].split('"')[0] + "'); ");
}
}
if (lohoh != '') {
adddrop(lohoh.split(' id="')[1].split('"')[0]);
lohoh='';
}



}
}
} else {
//ouralert('pthisoh=' + pthisoh + ' and potheroh=' + potheroh);
pretval=-2;
}
if (pretval == 1) {
itisthiscmove=pthispiece.substring(0,1).replace('w','B').replace('b','W').toLowerCase();
if (itisthiscmove == 'b' && playerb.indexOf('[') != -1) {
onenewmove.push(' ');
if (!fixamove('')) { pretval=-9; itisthiscmove=pthispiece.substring(0,1).replace('w','B').replace('b','W').toLowerCase(); }
} else if (itisthiscmove == 'w' && playerw.indexOf('[') != -1) {
onenewmove.push(' ');
if (!fixamove('')) { pretval=-9; itisthiscmove=pthispiece.substring(0,1).replace('w','B').replace('b','W').toLowerCase(); }
}
if (itisthiscmove == 'b' && pretval == 1) {
consolelog('Your next move ' + playerb + ' ... ');
} else if (pretval == 1) {
consolelog('Your next move ' + playerw + ' ... ');
}

}
return pretval;
}

function crownit(datap, ucc) {
var sps=document.getElementsByTagName('span');
for (var igh=0; igh<sps.length; igh++) {

if ((datap + ' ').substring(0,1) == 'b') {
if (('' + sps[igh].getAttribute('data-piece')) == datap) {
sps[igh].innerHTML=String.fromCodePoint(9819);
domcmds.push('document.getElementById("' + sps[igh].id + '").setAttribute("data-piece","' + datap.substring(0,2) + ucc + '");');
domcmds.push(' document.getElementById("' + sps[igh].id + '").innerHTML=String.fromCodePoint(9819); ');
//alert('yes');
}
} else if ((datap + ' ').substring(0,1) == 'w') {
if (('' + sps[igh].getAttribute('data-piece')) == datap) {
sps[igh].innerHTML=String.fromCodePoint(9813);
domcmds.push('document.getElementById("' + sps[igh].id + '").setAttribute("data-piece","' + datap.substring(0,2) + ucc + '");');
domcmds.push(' document.getElementById("' + sps[igh].id + '").innerHTML=String.fromCodePoint(9813); ');
//alert('Yes');
}
}
}
}

function jxthispiece(xthispiece) {
if (xthispiece.substring(2).substring(0,1) == 'v') {
crownit(xthispiece ,'S');
return ('S');
} else if (xthispiece.substring(2).substring(0,1) == 'u') {
crownit(xthispiece ,'R');
return ('R');
} else if (xthispiece.substring(2).substring(0,1) == 't') {
crownit(xthispiece ,'Q');
return ('Q');
} else if (xthispiece.substring(2).substring(0,1) == '0') {
crownit(xthispiece ,'P');
return ('P');
} else if (xthispiece.substring(2).substring(0,1) == '1') {
crownit(xthispiece ,'O');
return ('O');
} else if (xthispiece.substring(2).substring(0,1) == '2') {
crownit(xthispiece ,'N');
return ('N');
} else if (xthispiece.substring(2).substring(0,1) == '3') {
crownit(xthispiece ,'M');
return ('M');
} else if (xthispiece.substring(2).substring(0,1) == '4') {
crownit(xthispiece ,'L');
return ('L');
} else if (xthispiece.substring(2).substring(0,1) == '5') {
crownit(xthispiece ,'K');
return ('K');
} else if (xthispiece.substring(2).substring(0,1) == '6') {
crownit(xthispiece ,'J');
return ('J');
} else if (xthispiece.substring(2).substring(0,1) == '7') {
crownit(xthispiece ,'I');
return ('I');
} else if (xthispiece.substring(2).substring(0,1) == '8') {
crownit(xthispiece ,'H');
return ('H');
} else if (xthispiece.substring(2).substring(0,1) == '9') {
crownit(xthispiece ,'G');
return ('G');
}
return xthispiece.substring(2).substring(0,1);
}

function islegal() {
var mbcrval=0, jhbit='', thissq=-1, ihbit='';
var sat=0, ihthere=false, thispiece='', otherpiece='';
var sfor=1
var retval=true, adjective='', directionally='';
cm='';
if (navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i)) {
console.log(34);
}
if (document.URL.indexOf('/chess') != -1 && !document.getElementById('fdz') && lastoh.indexOf(' id="') != -1 && lastoh.indexOf('<span') == 0) {

if (newlohfulloh != '' && loh != '' && lastid == '') { lastid=loh; } else if (newlohfulloh != '' && bcklastid != '' && lastid == '') { lastid=bcklastid; }

bcklastid='';

if (navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i)) {
console.log(35);
}
console.log('1');
if (document.getElementById('fnodz')) {
console.log('11');
if (navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i)) {
console.log(36);
}
if (document.getElementById('mytable').innerHTML.indexOf(lastoh) == -1) {
retval=false;
if (navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i)) {
console.log('illegal');
}
} else {
if (navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i)) {
console.log('debatable');
}
var ioff=0;
//if (thispiece.substring(0,1) == 'w') { ioff=1; }
console.log('111');
// document.getElementById('target').innerHTML=document.getElementById('target').innerHTML.replace(lastoh, '');
// document.getElementById(lastid).innerHTML=lastoh;
// lastoh='';
// lastih='';
var thisid=lastoh.split(' id="')[1].split('"')[0];
thispiece=('' + document.getElementById(thisid).getAttribute('data-piece')).replace(/^null$/g,'').replace(/^undefined$/g,'');
if ((itisthiscmove + thispiece).substring(0,1) != thispiece.substring(0,1)) {
console.log('It is not your turn for a move.' + lohfulloh + ' ' + thisid + ' ' + lastoh);
ouralert('It is not your turn for a move.');
return false;
}
//ouralert('*' + lastid + '!');
if (loh != '') { lastid=loh; }

var goodthis='';
thissq=-1;
if (document.getElementById(lastid).outerHTML.indexOf('<span') == 0) {
thissq=('' + bigv(document.getElementById(lastid).outerHTML).split(' data-square="')[eval(-1 + bigv(document.getElementById(lastid).outerHTML).split(' data-square="').length)].split('"')[0]).replace(String.fromCharCode(10),'');
lastid=bigv(document.getElementById(lastid).outerHTML).split(' id="')[1].split('"')[0];
if (thissq.substring(0,1) >= '0' && thissq.substring(0,1) <= '9') { goodthis='' + thissq; }
} else {
thissq=('' + document.getElementById(lastid).outerHTML.split(' data-square="')[eval(-1 + document.getElementById(lastid).outerHTML.split(' data-square="').length)].split('"')[0]).replace(String.fromCharCode(10),'');
}
//if (newlohfulloh != '') { ouralert('7:' + thissq + ' ' + document.getElementById(lastid).outerHTML); }
var interim='';
if (thissq.indexOf('<span') == 0) {
interim='<span' + thissq.split('</span>')[0].split('<span')[eval(-1 + thissq.split('</span>')[0].split('<span').length)] + '</span>';
//if (newlohfulloh != '') { ouralert('lastoh=' + lastoh + ' and interim=' + interim + ' and thissq=' + thissq + ' and loh=' + loh); }
if (interim.length < 20 && loh != '') { lastid=loh; interim=document.getElementById(loh).innerHTML; lastih=interim.split('</')[0].split('>')[eval(-1 + interim.split('</')[0].split('>').length)]; }
//lastoh=interim;
//if (newlohfulloh != '') { ouralert(lohfulloh + ' +++ ' + bigv(lastoh) + ' Lastoh=' + lastoh + ' and interim=' + interim + ' and thissq=' + thissq + ' and loh=' + loh); }
if (interim.indexOf('<t') != -1) {
thissq=interim.split(' data-square="')[1].split('"')[0];
//} else {
} else if (bigv(document.getElementById(loh).outerHTML).indexOf(' data-square="') != -1) {
thissq=bigv(document.getElementById(loh).outerHTML).split(' data-square="')[eval(-1 + bigv(lastoh).split(' data-square="').length)].split('"')[0];
//if (document.URL.indexOf('debug') != -1) { ouralert('8253:' + thissq + ' ' + lastid + ' ' + thisid + ' ' + lastoh); }
thissq=document.getElementById('target').innerHTML.split(interim)[0].split(' data-square="')[eval(-1 + document.getElementById('target').innerHTML.split(interim)[0].split(' data-square="').length)].split('"')[0];
}
} else if (loh != '') {
//if (newlohfulloh != '') { ouralert('77:' + thissq + ' ' + document.getElementById(lastid).outerHTML); }
lastid=loh;
interim=document.getElementById(loh).outerHTML;
lastih=interim.split('</')[0].split('>')[eval(-1 + interim.split('</')[0].split('>').length)];
if (interim.indexOf('<t') != -1) {
thissq=interim.split(' data-square="')[1].split('"')[0];
} else if (bigv(lastoh).indexOf(' data-square="') != -1) {
thissq=bigv(lastoh).split(' data-square="')[eval(-1 + bigv(lastoh).split(' data-square="').length)].split('"')[0];
//if (document.URL.indexOf('debug') != -1) { ouralert('823:' + thissq + ' ' + lastid + ' ' + thisid + ' ' + lastoh); }
} else {
thissq=document.getElementById('target').innerHTML.split(interim)[0].split(' data-square="')[eval(-1 + document.getElementById('target').innerHTML.split(interim)[0].split(' data-square="').length)].split('"')[0];
}
}
if ((thissq + ' ').substring(0,1) < '0' && loh != '') {
//ouralert('yes');
lastid=loh;
interim=document.getElementById(loh).outerHTML;
//ouralert(interim + ' ... ' + document.getElementById('target').innerHTML.split(interim)[0].slice(-60));
lastih=interim.split('</')[0].split('>')[eval(-1 + interim.split('</')[0].split('>').length)];
if (interim.indexOf('<t') != -1) {
thissq=interim.split(' data-square="')[1].split('"')[0];
//if (document.URL.indexOf('debug') != -1) { ouralert('81:' + thissq + ' ' + lastid + ' ' + thisid + ' ' + lastoh); }
//ouralert(lastoh + ' +++ ' + interim);
} else if (bigv(lastoh).indexOf(' data-square="') != -1) {
thissq=bigv(lastoh).split(' data-square="')[eval(-1 + bigv(lastoh).split(' data-square="').length)].split('"')[0];
//if (document.URL.indexOf('debug') != -1) { ouralert('82:' + thissq + ' ' + lastid + ' ' + thisid + ' ' + lastoh); }
} else {
thissq=document.getElementById('target').innerHTML.split(interim)[0].split(' data-square="')[eval(-1 + document.getElementById('target').innerHTML.split(interim)[0].split(' data-square="').length)].split('"')[0];
//if (document.URL.indexOf('debug') != -1) { ouralert('83:' + thissq + ' ' + lastid + ' ' + thisid + ' ' + lastoh); }
}
}
//thissq=document.getElementById('target').innerHTML.split(lastoh)[0].split(' data-square="')[eval(-1 + document.getElementById('target').innerHTML.split(lastoh)[0].split(' data-square="').length)].split('"')[0];
//if (document.URL.indexOf('debug') != -1) { ouralert('8:' + thissq + ' ' + lastid + ' ' + thisid + ' ' + lastoh); }
var lastsq=('' + prevtih.split(lastoh)[0].split(' data-square="')[eval(-1 + prevtih.split(lastoh)[0].split(' data-square="').length)].split('"')[0]);
//if (document.URL.indexOf('debug') != -1) { ouralert('9:' + lastsq + ' ' + lastid + ' ' + thisid + ' ' + lastoh); }

if (thissq.substring(0,1) >= '0' && thissq.substring(0,1) <= '9') { if (goodthis != '') { thissq=eval('' + goodthis); } else { thissq=eval('' + thissq); } }
if (lastsq.substring(0,1) >= '0' && lastsq.substring(0,1) <= '9') { lastsq=eval('' + lastsq); }
//if (newlohfulloh != '') { ouralert('777:' + thissq + ' ' + document.getElementById(lastid).outerHTML); }

// 4.2;20,2
//ouralert('lastsq=' + lastsq + ' and thissq=' + thissq + ' and loh=' + loh + ' and lastid=' + lastid);
loh='';
var hshift=Math.floor(Math.abs(eval(eval(-1 + thissq) % 8) - eval(eval(-1 + lastsq) % 8)));
var vshift=Math.floor(eval(ioff + Math.abs(eval(eval(thissq - eval(eval(-1 + thissq) % 8)) / 8) - eval(eval(lastsq - eval(eval(-1 + lastsq) % 8) )) / 8)));

if (navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i)) {
console.log('hshift=' + hshift + ' and vshift=' + vshift);
}

if (document.URL.indexOf('draughts') != -1 && previyesnod == 0) {
if (thispiece.substring(0,1) == 'b' && thispiece.slice(-1) == thispiece.slice(-1).toLowerCase() && thissq < lastsq) {
ouralert('Draught pieces can not move this way until they become Kings on reaching the other end. ');
return false;
} else if (thispiece.substring(0,1) == 'w' && thispiece.slice(-1) == thispiece.slice(-1).toLowerCase() && thissq > lastsq) {
ouralert('Draught pieces can not move this way until they become Kings on reaching the other end. ');
return false;
}
}

if (document.getElementById(lastid).outerHTML.indexOf(' data-piece="') != -1) {
otherpiece=document.getElementById(lastid).outerHTML.split(' data-piece="')[1].split('"')[0];
adjective=' occupied';
adjective+=' by ' + otherpiece;
if ((otherpiece + ' ').substring(1).substring(0,1) == 'K' && eval('' + otherpiece.length) == 2) {
if ((thispiece + ' ').substring(1).substring(0,1) == 'K' && eval('' + otherpiece.length) == 2) {
ouralert('Kings can not take kings.');
return false;
} else if ((otherpiece + ' ').substring(0,1) != (thispiece + ' ').substring(0,1) && (otherpiece + ' ').substring(0,1) == 'w') {
cm='Checkmate! Congratulations, ' + playerb; //setTimeout(function(){ ouralert('Checkmate! Congratulations, ' + playerb); }, 2000);
//return false;
} else if ((otherpiece + ' ').substring(0,1) != (thispiece + ' ').substring(0,1) && (otherpiece + ' ').substring(0,1) == 'b') {
cm='Checkmate! Congratulations, ' + playerw; //setTimeout(function(){ ouralert('Checkmate! Congratulations, ' + playerw); }, 2000);
//return false;
}
}
}

if (document.getElementById(lastid).innerHTML.indexOf('<') != -1 || adjective != '') {
adjective=' occupied';
if (document.getElementById(lastid).outerHTML.indexOf(' data-piece="') != -1) {
otherpiece=document.getElementById(lastid).outerHTML.split(' data-piece="')[1].split('"')[0];
adjective+=' by ' + otherpiece;
if (otherpiece.substring(0,1) == thispiece.substring(0,1)) {
consolelog('Chess Piece ' + thispiece + ' just moved' + directionally + ' from square ' + lastsq + ' to' + adjective + ' square ' + thissq);
//ouralert('check castling ' + thispiece + ' ' + otherpiece + ' ' + lastoh + ' ' + document.getElementById(lastid).outerHTML);
mbcrval=mightbecastling(thispiece, otherpiece, lastoh, document.getElementById(lastid).outerHTML);
if (mbcrval <= 0) { //thispiece.substring(1).substring(0,1) == 'K' && eval('' + thispiece.length) == 2) {
if (mbcrval == 0) {
} else if (mbcrval == -1) {
ouralert('Existing pieces between King and Rook prevent castling.');
return false;
} else if (mbcrval == -2) {
if (prelegal) {
ouralert('Only Kings and Rooks can castle.');
return false;
}
} else if (mbcrval == -3) {
} else if (mbcrval == -4) {
} else if (mbcrval == -5) {
ouralert('Only Kings and Rooks of the same colour can castle.');
return false;
} else if (mbcrval == -9) {
ouralert('King has been affected by a move that causes a check or is too close to other King.');
return false;
} else if (mbcrval == -6) {
} else if (mbcrval == -7) {
} else if (hshift == 3 && vshift == 0 && adjective.indexOf(' occupied by ' + thispiece.substring(0,1) + 'R') == 0) {
ouralert('Check regarding castling');
} else if (hshift == 4 && vshift == 0 && adjective.indexOf(' occupied by ' + thispiece.substring(0,1) + 'R') == 0) {
ouralert('Check regarding castling');
} else if (eval(hshift + vshift) >= 3) {
ouralert('Kings do not move this way .');
return false;
} else if ((hshift == 0 || vshift == 0) && eval(hshift + vshift) > 1) {
ouralert('Kings do not move this way .');
return false;
} else if (hshift != 1 || vshift != 1) {
ouralert('Kings do not move this way .');
return false;
} else if (hshift == 3 && vshift == 0 && adjective.indexOf(' occupied by ' + thispiece.substring(0,1) + 'R') == 0) {
ouralert('Check regarding castling');
} else if (hshift == 4 && vshift == 0 && adjective.indexOf(' occupied by ' + thispiece.substring(0,1) + 'R') == 0) {
ouralert('Check regarding castling');
}
} else if (mbcrval != 1) {
ouralert('Except for castling (we will code for later) this is an illegal move.');
return false;
}
} //else { //if (thispiece.substring(1).substring(0,1) == 'P') {
//adjective=' occupied by ' + otherpiece;
//if (hshift == 0) {
//ouralert('Pawns can not move this way .');
// return false;
// } else {
// alert('P ' + hshift + '.' + vshift + ' ' + otherpiece + ' ' + lastoh + ' ... ' + document.getElementById(lastid).outerHTML);
// }
//}

}
if (document.URL.indexOf('draughts') != -1) {
ouralert('Draught pieces are not allowed to move this way.');
return false;
}
} else if (adjective == '') {
adjective=' unoccupied';
//if (thispiece.substring(1).substring(0,1) == 'P') {
// alert('p ' + hshift + '.' + vshift + ' ' + otherpiece + ' ' + lastoh + ' ... ' + document.getElementById(lastid).outerHTML);
//}
}

if (thissq == lastsq) { return false; }

//ouralert('' + hshift + '.' + vshift);
if ('Chess piece ' + thispiece + ' just moved' + directionally + ' from square ' + lastsq + ' to' + adjective + ' square ' + thissq == 'Chess piece bR1 just moved from square 1 to unoccupied square 5') {
console.log('Normally bad where lastid=' + lastid + ' ... ' + document.getElementById(lastid).outerHTML);
}
if ('Chess piece ' + thispiece + ' just moved' + directionally + ' from square ' + lastsq + ' to' + adjective + ' square ' + thissq == 'Chess piece wR1 just moved from square 57 to unoccupied square 61') {
console.log('Normally is bad where lastid=' + lastid + ' ... ' + document.getElementById(lastid).outerHTML);

}
if (Math.floor(eval(ioff + Math.abs(eval(thissq) - eval(lastsq)) % 8)) == 0) { // && eval(eval(-1 + thissq) / 8) != eval(eval(-1 + lastsq) / 8)) { // 57 vs 41 ... no
directionally=' vertically by ' + vshift;
if (thispiece.substring(1).substring(0,1) == 'B') {
consolelog('Chess Piece ' + thispiece + ' just moved' + directionally + ' from square ' + lastsq + ' to' + adjective + ' square ' + thissq);
if (document.URL.indexOf('draughts') != -1) {
ouralert('Draught pieces do not move this way.');
} else {
ouralert('Bishops do not move this way.');
}
return false;
}
} else if (Math.floor(eval(eval(-1 + thissq) % 8) == eval(eval(-1 + lastsq) % 8))) {
directionally=' horizontally by ' + hshift;
if (thispiece.substring(1).substring(0,1) == 'B') {
consolelog('Chess Piece ' + thispiece + ' just moved' + directionally + ' from square ' + lastsq + ' to' + adjective + ' square ' + thissq);
ouralert('Bishops do not move this way.');
return false;
}
} else if (thispiece.substring(1).substring(0,1) == 'R' && hshift != 0 && vshift != 0) {
consolelog('Chess Piece ' + thispiece + ' just moved' + directionally + ' from square ' + lastsq + ' to' + adjective + ' square ' + thissq);
ouralert('Rooks do not move this way.');
return false;
}
if (thispiece.substring(1).substring(0,1) == 'K' && eval('' + thispiece.length) > 2) {
if (eval(hshift + vshift) != 3 || hshift < 1 || vshift < 1) {
//ouralert('8:' + thissq + ' ' + thisid + ' ' + lastoh);
//ouralert('9:' + lastsq + ' ' + thisid + ' ' + lastoh);
ouralert('Knights can not move this way.');
return false;
}
} else if (mbcrval != 1 && thispiece.substring(1).substring(0,1) == 'K' && eval('' + thispiece.length) == 2) {
if ((otherpiece + ' ').substring(1).substring(0,1) == 'K' && eval('' + otherpiece.length) == 2) {
ouralert('Kings can not take kings.');
return false;
} else if (eval(hshift + vshift) >= 3) {
ouralert('Kings do not move this way .');
return false;
} else if ((hshift == 0 || vshift == 0) && eval(hshift + vshift) > 1) {
ouralert('Kings do not move this way.');
return false;
} else if (hshift != 1 || vshift != 1) {
if (eval(hshift + vshift) > 1) {
ouralert('Kings do not move this way.');
return false;
}
} else if (hshift == 3 && vshift == 0 && adjective.indexOf(' occupied by ' + thispiece.substring(0,1) + 'R') == 0) {
ouralert('Check regarding castling');
} else if (hshift == 4 && vshift == 0 && adjective.indexOf(' occupied by ' + thispiece.substring(0,1) + 'R') == 0) {
ouralert('Check regarding castling');
}
} else if (mbcrval != 1 && thispiece.substring(1).substring(0,1) == 'B') {
//ouralert('' + hshift + ',' + vshift);
//alert('tHeRE ' + thispiece + ' ' + thissq + ' ' + lastsq + ' ' + mbcrval);
var tpiece='', tdsd=[], itdsd=0;
yesnod=true;
iyesnod=0;
if (hshift != vshift && document.URL.indexOf('draughts') != -1) {
ouralert('Draught pieces do not move this way.');
return false;
} else if (hshift != vshift) {
if (document.URL.indexOf('draughts') != -1) {
ouralert('Draught pieces do not move this way.');
} else {
ouralert('Bishops do not move this way.');
}
return false;
} else if (hshift != vshift && (hshift > 2 || vshift > 2) && document.URL.indexOf('draughts') != -1) {
ouralert('Draught pieces can not move this way.');
return false;
} else if (hshift == 1 && vshift == 1 && document.URL.indexOf('draughts') != -1) {
ihbit='';
yesnod=true;
iyesnod=0;
occupiedlist.replace(',' + lastsq + ',', ',');
occupiedlist+='' + thissq + ',';
tdsd=document.getElementsByTagName('td'); // new below
for (itdsd=0; itdsd<tdsd.length; itdsd++) {
if (tdsd[itdsd].outerHTML.indexOf(' data-square="' + lastsq + '"') != -1) {
ihbit=tdsd[itdsd].innerHTML;
jhbit=ihbit;
if (ihbit != '') { //ihbit.indexOf(' data-piece="') != -1) {
if ((thissq <= 8 || thissq >= 57) && thispiece.substring(2).substring(0,1) == thispiece.substring(2).substring(0,1).toLowerCase()) {
jhbit=jhbit.replace(thispiece, thispiece.substring(0,2) + jxthispiece(thispiece));
//alert(jhbit);
}
// alert('why? ' + ihbit);
startboard=startboard.replace(ihbit.split(' data-piece="')[1].split('"')[0] + '_' + lastsq, jhbit.split(' data-piece="')[1].split('"')[0] + '_' + thissq);
endboard=endboard.replace(ihbit.split(' data-piece="')[1].split('"')[0] + '_' + lastsq, jhbit.split(' data-piece="')[1].split('"')[0] + '_' + thissq);
document.getElementById('fshare').href=document.getElementById('fshare').href.replace(ihbit.split(' data-piece="')[1].split('"')[0] + '_' + lastsq, jhbit.split(' data-piece="')[1].split('"')[0] + '_' + thissq).replace(encodeURIComponent(ihbit.split(' data-piece="')[1].split('"')[0] + '_' + lastsq), encodeURIComponent(jhbit.split(' data-piece="')[1].split('"')[0] + '_' + thissq));
//} else {
// alert(tdsd[itdsd].id);
}
tdsd[itdsd].innerHTML='';
}
}
for (itdsd=0; itdsd<tdsd.length; itdsd++) {
if (tdsd[itdsd].outerHTML.indexOf(' data-square="' + thissq + '"') != -1) {
if (ihbit == '') {
ihbit=lastoh;
jhbit=lastoh;
if ((thissq <= 8 || thissq >= 57) && thispiece.substring(2).substring(0,1) == thispiece.substring(2).substring(0,1).toLowerCase()) {
jhbit=jhbit.replace(thispiece, thispiece.substring(0,2) + jxthispiece(thispiece));
}
startboard=startboard.replace(lastoh.split(' data-piece="')[1].split('"')[0] + '_' + lastsq, jhbit.split(' data-piece="')[1].split('"')[0] + '_' + thissq);
endboard=endboard.replace(lastoh.split(' data-piece="')[1].split('"')[0] + '_' + lastsq, jhbit.split(' data-piece="')[1].split('"')[0] + '_' + thissq);
document.getElementById('fshare').href=document.getElementById('fshare').href.replace(lastoh.split(' data-piece="')[1].split('"')[0] + '_' + lastsq, jhbit.split(' data-piece="')[1].split('"')[0] + '_' + thissq).replace(encodeURIComponent(lastoh.split(' data-piece="')[1].split('"')[0] + '_' + lastsq), encodeURIComponent(jhbit.split(' data-piece="')[1].split('"')[0] + '_' + thissq));
}
tdsd[itdsd].innerHTML=jhbit;
}
}

} else {
//ouralert('' + eval(Math.abs(thissq - lastsq) / hshift));
sat=lastsq;
ihthere=false;
sfor=eval((eval('' + thissq) - eval('' + lastsq)) / hshift);
sat+=sfor;
if (document.URL.indexOf('draughts') != -1) {

tdsd=document.getElementsByTagName('td');
for (itdsd=0; itdsd<tdsd.length; itdsd++) {
if (tdsd[itdsd].outerHTML.indexOf(' data-square="' + sat + '"') != -1) {
if (tdsd[itdsd].innerHTML == '') {
ouralert('Draught pieces will not move this way.');
return false;
}
}
}

}
while (sat != thissq) {
//ouralert('' + sat + ' vs ' + lastsq + ' sfor=' + sfor + ' thissq=' + thissq + ' lastsq=' + lastsq);
if (document.URL.indexOf('draughts') == -1 && document.getElementById('target').innerHTML.split(' data-square="' + sat + '"')[1].split('>')[1].split('</')[0].trim() != '') {
ouralert('Bishops can not jump over other pieces.');
return false;
} else if (document.URL.indexOf('draughts') != -1) {
tdsd=document.getElementsByTagName('td');
for (itdsd=0; itdsd<tdsd.length; itdsd++) {
if (tdsd[itdsd].outerHTML.indexOf(' data-square="' + sat + '"') != -1) {
if (tdsd[itdsd].innerHTML.indexOf(' data-piece="' + thispiece.substring(0,1) ) != -1) {
ouralert('Draught pieces cannot jump over their own pieces.');
return false;
} else if (tdsd[itdsd].innerHTML.indexOf(' data-piece="' + thispiece.substring(0,1).replace('w','B').replace('b','w').toLowerCase() ) != -1) {
if (tdsd[itdsd].innerHTML.indexOf(' data-piece="') == -1) {
startboard=startboard.replace(lastoh.split(' data-piece="')[1].split('"')[0] + '_' + sat, '');
endboard=endboard.replace(lastoh.split(' data-piece="')[1].split('"')[0] + '_' + sat, '');
document.getElementById('fshare').href=document.getElementById('fshare').href.replace(lastoh.split(' data-piece="')[1].split('"')[0] + '_' + sat, '').replace(encodeURIComponent(lastoh.split(' data-piece="')[1].split('"')[0] + '_' + sat), '');
} else {
startboard=startboard.replace(tdsd[itdsd].innerHTML.split(' data-piece="')[1].split('"')[0] + '_' + sat, '');
endboard=endboard.replace(tdsd[itdsd].innerHTML.split(' data-piece="')[1].split('"')[0] + '_' + sat, '');
document.getElementById('fshare').href=document.getElementById('fshare').href.replace(tdsd[itdsd].innerHTML.split(' data-piece="')[1].split('"')[0] + '_' + sat, '').replace(encodeURIComponent(tdsd[itdsd].innerHTML.split(' data-piece="')[1].split('"')[0] + '_' + sat), '');
}
tdsd[itdsd].innerHTML='';
occupiedlist=occupiedlist.replace(',' + sat + ',', ',');
occupiedlist+='' + thissq + ',';
if (1 == 1) {
iyesnod=10000;
previyesnod=10000;
yesnod=false;
} else {
yesnod=confirm('Are you finished with your move?');
}
if (yesnod || 8 == 8) {
tdsd=document.getElementsByTagName('td');
for (itdsd=0; itdsd<tdsd.length; itdsd++) {
if (tdsd[itdsd].outerHTML.indexOf(' data-square="' + thissq + '"') != -1) {
tdsd[itdsd].innerHTML=lastoh;
}
}
}
}
}
}
}
if (!yesnod) { break; }
sat+=sfor;
}
}
if (!yesnod && iyesnod == 0) { return false; }
} else if (mbcrval != 1 && thispiece.substring(1).substring(0,1) == 'Q' && hshift != vshift && hshift != 0 && vshift != 0) {
if (hshift != 0 && vshift != 0) {
ouralert('Queens do not move this way.');
return false;
}
} else if (mbcrval != 1 && thispiece.substring(1).substring(0,1) == 'Q' && (hshift == vshift || hshift == 0 || vshift == 0)) {
//alert('Here');
if (hshift != 0) {
sat=lastsq;
ihthere=false;
sfor=eval((eval('' + thissq) - eval('' + lastsq)) / hshift);
sat+=sfor;
while (sat != thissq) {
if (document.getElementById('target').innerHTML.split(' data-square="' + sat + '"')[1].split('>')[1].split('</')[0].trim() != '') {
ouralert('Queens can not jump over other pieces.');
return false;
}
sat+=sfor;
}
} else {
//alert('here');
sat=lastsq;
ihthere=false;
sfor=eval((eval('' + thissq) - eval('' + lastsq)) / vshift);
sat+=sfor;
while (sat != thissq) {
if (document.getElementById('target').innerHTML.split(' data-square="' + sat + '"')[1].split('>')[1].split('</')[0].trim() != '') {
ouralert('Queens can not jump over other pieces.');
return false;
}
sat+=sfor;
}
}
} else if (mbcrval != 1 && thispiece.substring(1).substring(0,1) == 'R' && hshift != 0) {
mbcrval=mightbecastling(thispiece, otherpiece, lastoh, document.getElementById(lastid).outerHTML);
if (mbcrval != 1) {
sat=lastsq;
ihthere=false;
sfor=eval((eval('' + thissq) - eval('' + lastsq)) / hshift);
sat+=sfor;
while (sat != thissq) {
if (document.getElementById('target').innerHTML.split(' data-square="' + sat + '"')[1].split('>')[1].split('</')[0].trim() != '') {
ouralert('Rooks can not jump over other pieces.');
return false;
}
sat+=sfor;
}
}
} else if (mbcrval != 1 && thispiece.substring(1).substring(0,1) == 'R' && vshift != 0) {
mbcrval=mightbecastling(thispiece, otherpiece, lastoh, document.getElementById(lastid).outerHTML);
if (mbcrval != 1) {
sat=lastsq;
ihthere=false;
sfor=eval((eval('' + thissq) - eval('' + lastsq)) / vshift);
sat+=sfor;
while (sat != thissq) {
if (document.getElementById('target').innerHTML.split(' data-square="' + sat + '"')[1].split('>')[1].split('</')[0].trim() != '') {
ouralert('Rooks can not jump over other pieces.');
return false;
}
sat+=sfor;
}
}
} else if (mbcrval != 1 && thispiece.substring(1).substring(0,1) == 'P') {
if (adjective == ' unoccupied') {
if (hshift != 0) {
if (eval(hshift + vshift) > 2) {
ouralert('Pawns can not move this way .');
return false;
} else if (ppt && hshift == 1 && vshift == 1) {
ouralert('Pawns can not move this way .');
return false;
//consolelog('huh pawn');
ppt=ppt;
} else if (!ppt && hshift > 0) {
ouralert('Pawns can not move this way .');
return false;
}
} else if (Math.floor(eval(eval(-1 + eval('' + lastsq)) / 8)) == 6 || Math.floor(eval(eval(-1 + eval('' + lastsq)) / 8)) == 1) {
if (vshift > 2) {
ouralert('Pawns can not move this way .');
return false;
} else if (vshift == 2) {
//ouralert('vshift=' + vshift);
sat=lastsq;
ihthere=false;
sfor=eval((eval('' + thissq) - eval('' + lastsq)) / vshift);
sat+=sfor;
//while (sat != thissq) {
if (document.getElementById('target').innerHTML.split(' data-square="' + sat + '"')[1].split('>')[1].split('</')[0].trim() != '') {
ouralert('Pawns can not jump over other pieces.');
return false;
}
//sat+=sfor;
//}
}
} else if (vshift != 1) {
ouralert('Pawns can not move this way.');
return false;
} else if (thispiece.substring(0,1) == 'w' && eval('' + lastsq) < eval('' + thissq)) {
if (ppt && hshift == 1 && vshift == 1) {
ppt=ppt;
} else {
ouralert('Pawns can not move this way .');
return false;
}
} else if (thispiece.substring(0,1) == 'b' && eval('' + lastsq) > eval('' + thissq)) {
if (ppt && hshift == 1 && vshift == 1) {
ppt=ppt;
} else {
ouralert('Pawns can not move this way .');
return false;
}
}
} else if (hshift != 1 || vshift != 1) {
if (ppt && hshift == 1 && vshift == 1) {
ppt=ppt;
} else {
ouralert('Pawns can not move this way .');
return false;
}
}
}
consolelog('Chess piece ' + thispiece + ' just moved' + directionally + ' from square ' + lastsq + ' to' + adjective + ' square ' + thissq);
prevlastoh=lastoh;
prevlastih=lastih;
setTimeout(prevl, 500);
}
}
}
//ouralert('' + retval + ' ' + thispiece);
if (retval) {
if (iyesnod != 0) {
if (thispiece.substring(0,1).replace('w','B').replace('b','W').toLowerCase() == 'b') {
document.getElementById('mytable').style.cursor='progress';
consolelog(playerw + ', you have ten more seconds on your move. ');
setTimeout(function(){ if (iyesnod == 0) { previyesnod=0; document.getElementById('mytable').style.cursor='pointer'; itisthiscmove='b'; consolelog('Your next move ' + playerb + ' ... '); } }, iyesnod);
} else {
document.getElementById('mytable').style.cursor='progress';
consolelog(playerb + ', you have ten more seconds on your move. ');
setTimeout(function(){ if (iyesnod == 0) { previyesnod=0; document.getElementById('mytable').style.cursor='pointer'; itisthiscmove='w'; consolelog('Your next move ' + playerw + ' ... '); } }, iyesnod);
}
iyesnod=0;
//alert('on timer');
} else {
itisthiscmove=thispiece.substring(0,1).replace('w','B').replace('b','W').toLowerCase();
if (itisthiscmove == 'b') {
consolelog('Your next move ' + playerb + ' ... ');
} else {
consolelog('Your next move ' + playerw + ' ... ');
}
occupiedlist=occupiedlist.replace(',' + lastsq + ',', ',');
occupiedlist+='' + thissq + ',';
}

if (document.URL.indexOf('draughts') == -1) {
if (thispiece.substring(0,2) == 'wP' && thissq <= 8) {
qid=thisid;
qqid='♕⁠';
setTimeout(bbbthen, 4000);
//ouralert(98);
//document.getElementById(thisid).setAttribute('data-piece', document.getElementById(thisid).getAttribute('data-piece').replace('wP','wQ'));
//document.getElementById(thisid).innerHTML='♕⁠';
} else if (thispiece.substring(0,2) == 'bP' && thissq >= 57) {
qid=thisid;
qqid='♛⁠';
setTimeout(bbbthen, 4000);
//document.getElementById(thisid).setAttribute('data-piece', document.getElementById(thisid).getAttribute('data-piece').replace('bP','bQ'));
//document.getElementById(thisid).innerHTML='♛⁠';
}
}
}
if (mbcrval == 1) { retval=false; }
if (cm != '' && retval) {
setTimeout(function(){ ouralert(cm); }, 2000);
}

if (retval && lastmove != '') {
retval=fixamove(lastmove);
}
lastmove='';
return retval;
}

function bbbthen() {
var thatid=qid;
//ouralert(thatid);
document.getElementById(thatid).innerHTML=qqid;
document.getElementById(thatid).setAttribute('data-piece', document.getElementById(thatid).getAttribute('data-piece').replace('wP','wQ').replace('bP','bQ'));
}

function prevl() {
prevtih=document.getElementById('target').innerHTML;
}

function mirrorperhaps(inn) {
if (!mirroring) { return inn; }
var onnd=Math.floor(eval(inn / 8));
var onnr=eval(inn % 8);
// (7 - 1/8) x 8 + (1 % 8)
//if (inn == 14) { alert(eval(eval(eval(7 - onnd) * 8) + onnr)); }
return eval(eval(eval(7 - onnd) * 8) + onnr);
}

function maybethreeu(inht) {
var outht=inht;
var insh=inht.split(' data-piece="');
// alert(outht);
if (insh.length != 1) {
var dpthreeu=insh[1].split('"')[0];
if (dpthreeu.trim() != '' && (' ' + dpthreeu).slice(-1) == (' ' + dpthreeu).slice(-1).toUpperCase() && (' ' + dpthreeu).slice(-1) != (' ' + dpthreeu).slice(-1).toLowerCase()) {
//alert(dpthreeu);
if (dpthreeu.substring(0,1) == 'w') {
outht=inht.split('>')[0] + '>' + String.fromCodePoint(9819) + '</' + inht.substring(1).split(' ')[0].split('>')[0] + '>';
} else if (dpthreeu.substring(0,1) == 'b') {
outht=inht.split('>')[0] + '>' + String.fromCodePoint(9813) + '</' + inht.substring(1).split(' ')[0].split('>')[0] + '>';
}
}
}
return outht;
}

function butwhatifchessgame(inspanstuff) {
var outspanstuff=inspanstuff, ii=0, thisth='', tnum=0;
if (document.URL.indexOf('/chess') != -1 && document.URL.indexOf('traditional=') != -1) {
var ths=[];
var ourmap=[];
var thas=inspanstuff.split('</th>');
//alert(thas.length);
for (ii=0; ii<thas.length; ii++) {
if (thas[ii].trim() != '') {
thisth=maybethreeu('<th' + thas[ii].split('<th')[-1 + eval('' + thas[ii].split('<th').length)] + '</th>');
ths.push(thisth);
//alert(thisth);
} // outspanstuff=outspanstuff.replace(thisth, '');
}
var outtg=document.getElementById('mytable').innerHTML;
thas=outtg.split('</td>');
//ouralert(65);
if (trad.indexOf('_') != -1 && trad.indexOf('P') != -1 && document.URL.indexOf('draughts') == -1) {
if (trad.indexOf('wP') != -1) {
if (eval(trad.split('wP')[1].split('_')[1].split('w')[0].split('b')[0].split('_')[0]) <= 16) {
mirroring=true;
}
}
if (trad.indexOf('bP') != -1) {
if (eval(trad.split('bP')[1].split('_')[1].split('w')[0].split('b')[0].split('_')[0]) >= 49) {
mirroring=true;
}
}


}
//alert(thas.length);
for (ii=0; ii<thas.length; ii++) {
if (trad.indexOf('_') != -1) {
//alert('' + ths.length + ' ' + trad + ' cpa[' + ii + ']=' + cpa[ii] + ' ... ' + occupiedlist);
//if (1 == 1 || cpa[ii] == 'wP1') { alert('Ready ' + cpa[ii]); }
if (tradmove(trad + '&move=' + amove).indexOf(cpa[ii] + '_') != -1) {
//if (cpa[ii] == 'wP1') { alert(eval(-1 + mirrorperhaps(eval(trad.split(cpa[ii] + '_')[1].split('w')[0].split('b')[0])))); }
ourmap.push(eval(-1 + mirrorperhaps(eval(trad.split(cpa[ii] + '_')[1].split('w')[0].split('b')[0].split('_')[0]))));
occupiedlist+='' + eval(-1 + mirrorperhaps(eval(trad.split(cpa[ii] + '_')[1].split('w')[0].split('b')[0].split('_')[0]))) + ',';
//alert(occupiedlist);
} else {
ourmap.push(-1);
occupiedlist+='' + eval(1 + eval('' + staidmap[ii])) + ',';
}
} else if (staidmap[ii] >= 0 && document.URL.indexOf('traditional=mayhem') == -1 && trad.indexOf('_') == -1) {
ourmap.push(staidmap[ii]);
occupiedlist+='' + eval(1 + eval('' + staidmap[ii])) + ',';
//alert(occupiedlist);
} else {
tnum=Math.floor(Math.random() * 64);
occupiedlist+='' + eval(1 + tnum) + ',';
ourmap.push(tnum);
}
}
if (amove.trim() != '') {
//alert(amove);
//if (trad.trim().indexOf(amove.split('_')[0] + '_') == -1) {
//ourmap.push(eval(-1 + mirrorperhaps(eval(trad.trim().split(cpa[ii] + '_')[1].split('w')[0].split('b')[0].split('_')[0]))));
//occupiedlist+='' + eval(-1 + mirrorperhaps(eval(trad.trim().split(cpa[ii] + '_')[1].split('w')[0].split('b')[0].split('_')[0]))) + ',';
//}
var amvs=amove.split('_');
if (eval('' + amvs.length) > 2) {
moveto=mirrorperhaps(eval('' + amvs[2]));
if (movefrom == -1) { movefrom=mirrorperhaps(eval('' + amvs[1])); }
//alert('' + movefrom + ' to ' + moveto);
}
}
//ouralert(165);
var preclick='';
if (navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i)) {
preclick='data-';
}
//alert(ths.length);
if (document.URL.indexOf('draughts') == -1 || 7 == 7) { // new for draughts
for (ii=(-1 + eval('' + ths.length)); ii>=0; ii--) {
if (ourmap[ii] >= 0) {
//ouralert(thas[ii] + ' ... ' + ths[ii]);
outtg=outtg.replace(thas[ourmap[ii]], thas[ourmap[ii]] + ths[ii].replace(/th/g,'span').replace('<span ', '<span style=font-size:60px; data-ontouchstart=fit(this); onmouseover=fit(this); ' + preclick + 'onclick=fit(this); ')); // .replace(/th/g,'SPAN')
}
}
}
document.getElementById('mytable').innerHTML=outtg;
setTimeout(prevl, 500);
return '<td></td>';
}
return outspanstuff;
}

function askmore() {
var yb=prompt('Optionally enter your own new sentence to set for the user to unscramble. The assumption is there that an absolute URL as a word represents an image URL where hashtag #leftoff#topoff#width#height could optionally be appended.', '');
if (yb != null) {
if (yb.trim() != '') {
location.href=(document.URL.replace(('#' + location.hash).replace('##','#').replace(/^\#$/g,''),'') + ('#' + location.hash).replace('##','#').replace(/^\#$/g,'')).replace('sourcenum=', 'sourceXnum=').replace('yourblurb=', 'yourXblurb=').replace('?', '?yourblurb=' + encodeURIComponent(yb) + '&sourcenum=&').replace('#','&');
}
}
}

function cloneize() {
var irws=1;
var firsttogo='td33', ifirst=9;
var ielems=0, elems=[];
var wastdcheck=tdcheck;

if (tdcheck) {
setTimeout(dodoms, 1000); //setInterval(dodoms, 1000);
tdcheck=false;

if (document.URL.indexOf('/chess') != -1 && document.URL.indexOf('traditional=') != -1 && document.URL.indexOf('traditional=mayhem') == -1) {
setTimeout(checkstartcheck, 3000);
}

if (document.getElementById('td32')) { eightoh=document.getElementById('td32').outerHTML.split('>')[0] + '></td>'; }

if (document.URL.indexOf('/chess') != -1) {
document.getElementById('clone').style.display='none';
}

if (shuffle) {
document.getElementById('spmore').innerHTML='<a title="Set your own sentence for the user to unscramble." style=text-decoration:none;cursor:pointer; onclick=askmore();>+</a>';
}

if (yourblurb != '') {
document.getElementById('source').innerHTML=yourblurb;
yourblurb='';
}

if (sourcenum <= 0 && !sdone) {
var sncx=document.getElementById('source').innerText;
var swordsx=sncx.split(' ');
if (tdnum == 9 && document.URL.indexOf('tdnum=') == -1) {
tdnum=eval('' + swordsx.length);
}
} else if (sourcenum != 1 && !sdone && tdnum == 9) {
tdnum=eval('' + sourcenum);
}

if (tdnum == 3) {
if (document.getElementById('tr3')) {
document.getElementById('tr3').style.display='none';
document.getElementById('tr2').style.display='none';
}
document.getElementById('td11').rowspan='3';
document.getElementById('td12').rowspan='3';
document.getElementById('td13').rowspan='3';
} else if (tdnum == 6) {
if (document.getElementById('tr3')) {
document.getElementById('tr3').style.display='none';
}
document.getElementById('td21').rowspan='2';
document.getElementById('td22').rowspan='2';
document.getElementById('td23').rowspan='2';
} else if (tdnum < 9) {
if (document.getElementById('td33')) {
for (ifirst=9; ifirst>tdnum; ifirst--) {
document.getElementById(firsttogo).style.display='none';
firsttogo=firsttogo.replace('td12','tdx11').replace('td21','tdx12').replace('td21','tdx13').replace('td22','tdx21').replace('td23','tdx22').replace('td31','tdx23').replace('td32','tdx31').replace('td33','tdx32').replace('tdx','td');
}
}
} else if (tdnum > 9) {
var arow='', rownum=4;
if (document.getElementById('target').innerHTML.indexOf('td221') != -1 && document.URL.indexOf('/chess') != -1) {
var wastheih=document.getElementById('target').innerHTML;
//ouralert(wastheih);
for (var ijkx=1; ijkx<=tdnum; ijkx++) {
wastheih=wastheih.replace('>' + ijkx + '<', '><');
}
document.getElementById('target').innerHTML=wastheih;
} else {
for (var ijk=10; ijk<=tdnum; ijk++) {
if (eval(ijk % 3) == 1) {
rownum=eval(1 + eval(eval(-1 + ijk) / 3));
arow='<t' + 'r id=tr' + rownum + '><t' + 'd id=td' + rownum + '1>' + ijk + '</t' + 'd></t' + 'r>';
//ouralert('1:' + ijk + ' ' + arow);
} else if (eval(ijk % 3) == 0) {
arow=arow.replace('</t' + 'r>', '<t' + 'd id=td' + rownum + '3>' + ijk + '</t' + 'd></t' + 'r>');
//ouralert('2:' + ijk + ' ' + arow);
document.getElementById('mytable').innerHTML+=arow;
arow='';
} else {
arow=arow.replace('</t' + 'r>', '<t' + 'd id=td' + rownum + '2>' + ijk + '</t' + 'd></t' + 'r>');
//ouralert('3:' + ijk + ' ' + arow);
}
}
}
document.getElementById('mytable').innerHTML+=arow;
}
}

if (across != 3) {
var sofartd='', two=2;
var wasih=document.getElementById('mytable').innerHTML;
var rowas=wasih.split('</' + 'tr>');
for (irws=1; irws<rowas.length; irws++) {
if (rowas[irws].length > 3 && rowas[irws].replace(String.fromCharCode(10),'').indexOf('</') != 0) {
wasih=wasih.replace(rowas[eval(-1 + irws)] + '</' + 'tr>', rowas[eval(-1 + irws)] + '<!-' + '-/' + 'tr>');
}
}
rowas=wasih.split('<t' + 'r');
for (irws=2; irws<rowas.length; irws++) {
if (rowas[irws].length > 3) {
wasih=wasih.replace('<t' + 'r' + rowas[irws], '<t' + 'r' + rowas[irws].replace(rowas[irws].split('>')[0] + '>', '-' + '->'));
}
}
rowas=wasih.split('</t' + 'd>');
for (irws=0; irws<rowas.length; irws++) {
if (eval(eval(1 + irws) % across) == 0) {
sofartd+=rowas[irws] + '</t' + 'd>';
wasih=wasih.replace(sofartd, sofartd + '</t' + 'r><t' + 'r id=tr' + two + '>');
sofartd='';
two++;
} else {
sofartd+=rowas[irws] + '</t' + 'd>';
}
}
document.getElementById('mytable').innerHTML=wasih;
}

if (navigator.userAgent.toLowerCase().indexOf('firefox') > -1){
document.getElementById(sourceid).setAttribute('contenteditable',false);
document.getElementById('strongs').innerHTML='';
}
if (clonedata != document.getElementById(sourceid).innerHTML) {
clonedata=document.getElementById(sourceid).outerHTML.replace(' id=', ' data-id=');
if (!document.getElementById('callback') && document.URL.indexOf('/chess') == -1) { document.getElementById('clone').style.display='inline-block'; }
}
if (sourcenum != 1 && !sdone) {
sdone=true;
var snc=document.getElementById('source').innerText;
//alert(snc + ' ' + shuffle);
origsnc=snc;
var swords=snc.split(' ');
var ourone=1, onepos=0;
var sarr=[], sarrsofar=',';
var ccbit=' cellpadding=0 cellspacing=0 ', onerand='';
var spanstuff='', kspan=0;
if (eval('' + sourcenum) == eval('' + swords.length) || eval('' + sourcenum) <= 0 || shuffle) {
if (eval('' + sourcenum) <= 0) { sourcenum=eval('' + swords.length); }
for (var inb=0; inb<sourcenum; inb++) {

if (!shuffle) {
//ouralert('*' + swords[inb] + '*');
sarr.push(inb);
} else {
if (sarrsofar == ',') {
onerand='' + Math.floor(Math.random() * sourcenum);
sarrsofar+='' + onerand + ',';
sarr.push(eval(onerand));
} else {
while (sarrsofar.indexOf(',' + onerand + ',') != -1) {
onerand='' + Math.floor(Math.random() * sourcenum);
}
sarrsofar+='' + onerand + ',';
sarr.push(eval(onerand));
}
}

}
ourone=-1;
ccbit=' cellpadding=2 cellspacing=0 ';
setInterval(shufflegamecheck, 3000);
} else if (eval('' + snc.length) > eval('' + sourcenum)) {
ourone=Math.floor(eval(eval('' + snc.length) / eval('' + sourcenum)));
}
//alert('sourcenum=' + sourcenum + ' originalsn.originalsh=' + originalsn + '.' + originalsh);
for (kspan=0; kspan<eval('' + sourcenum); kspan++) {
if (ourone < 0) {
spanstuff+='<span data-piece="' + cpa[kspan] + '" class=source draggable="true" id=span' + kspan + cbi('>' + ('' + swords[sarr[kspan]]).replace(/undefined$/g, '')) + '</span>';
} else if (eval(eval('' + onepos) + eval('' + ourone)) < eval('' + snc.length) && eval(1 + kspan) != eval('' + sourcenum)) {
spanstuff+='<span data-piece="' + cpa[kspan] + '" class=source draggable="true" id=span' + kspan + cbi('>' + snc.substring(onepos).substring(0,ourone)) + '</span>';
} else if (eval('' + onepos) < eval('' + snc.length)) {
//ouralert(snc.substring(onepos));
spanstuff+='<span data-piece="' + cpa[kspan] + '" class=source draggable="true" id=span' + kspan + cbi('>' + snc.substring(onepos)) + '</span>';
} else {
spanstuff+='<span data-piece="' + cpa[kspan] + '" class=source draggable="true" id=span' + kspan + '> </span>';
}
onepos+=ourone;
}
//alert('onepos=' + onepos);
//ouralert(888);
document.getElementById('dsource').innerHTML='<ta' + 'ble' + ccbit + ' id=source style="background-color:#f0f0f0;"><t' + 'r>' + butwhatifchessgame(spanstuff.replace(/span/g, 'th')) + '</t' + 'r></ta' + 'ble><br>';
//document.getElementById('dsource').style.textAlign='left';
if (document.getElementById('mybut') && originalsn <= 0 && originalsh) {
document.getElementById('mybut').innerHTML='Piece Sentence Back Together Again Game';
document.getElementById('dsource').style.width='100%';
document.getElementById('dsource').style.display='inline-block';
document.getElementById('source').align='left';
} //else {
//ouralert(originalsn);
//ouralert(originalsh);
//}
setTimeout(aathen, 50);
setTimeout(cloneize, 100);

if (wastdcheck && document.URL.indexOf('/chess') != -1) {
document.title='Chess Game Practice';
if (document.URL.indexOf('traditional=') != -1) {
document.getElementsByTagName('h4')[0].style.marginTop='-22px';
document.getElementById('target').style.marginTop='-5px';
}

if (1 == 1) {
setTimeout(laterjig, 3000);
} else {
if (document.URL.indexOf('draughts') != -1) {
var thisda='', thisdq='';
var dtds=document.getElementsByTagName('td');
for (var idts=0; idts<dtds.length; idts++) {
thisda=('' + dtds[idts].getAttribute('data-answer')).replace(/^null$/g,'').replace(/^undefined$/g,'');
if (thisda.replace('0','') != '' && thisda.indexOf('-') != -1 && dtds[idts].innerHTML == '') {
thisdq=('' + dtds[idts].getAttribute('data-square')).replace(/^null$/g,'').replace(/^undefined$/g,'');
//alert(thisda + ' ' + thisdq);
dtds[idts].innerHTML='<span style="font-size:60px;" data-ontouchstart="fit(this);" onmouseover="fit(this);" onclick="fit(this);" data-piece="' + thisda.split('-')[0] + '" class="source" draggable="true" id="span' + thisdq + '">&#' + thisda.split('-')[1] + ';</span>';
//alert(startboard);
adddrop('span' + thisdq);
}
}
}
}

rejig();
}
}

function laterjig() {
if (document.URL.indexOf('draughts') != -1) {
var thisda='', thisdq='';
var dtds=document.getElementsByTagName('td');
for (var idts=0; idts<dtds.length; idts++) {
thisda=('' + dtds[idts].getAttribute('data-answer')).replace(/^null$/g,'').replace(/^undefined$/g,'');
if (thisda.replace('0','') != '' && thisda.indexOf('-') != -1 && dtds[idts].innerHTML == '') {
thisdq=('' + dtds[idts].getAttribute('data-square')).replace(/^null$/g,'').replace(/^undefined$/g,'');
//alert(thisda + ' ' + thisdq);
dtds[idts].innerHTML='<span style="font-size:60px;" data-ontouchstart="fit(this);" onmouseover="fit(this);" onclick="fit(this);" data-piece="' + thisda.split('-')[0] + '" class="source" draggable="true" id="span' + thisdq + '">&#' + thisda.split('-')[1] + ';</span>';
//alert(startboard);
adddrop('span' + thisdq);
}
}
}
}

function rejig() {
var eword="touchdown";
if (navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i) || (trad.trim().indexOf('_') != -1 && amove.trim() != '')) {
if (!navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i)) { eword="click"; }
if (document.URL.indexOf('traditional=') != -1) {
var huhih=document.getElementsByTagName('h1')[0].innerHTML.substring(26);
if (huhih.indexOf('Discrete Touch') == -1 && eword == "touchdown") {
document.getElementsByTagName('h1')[0].innerHTML="Discrete Touch" + huhih;
}
}
//document.body.addEventListener("touchdown", (ev) => { gev=ev; refit(ev); });
document.getElementById('mytable').addEventListener("click", (ev) => { gev=ev; if (1 == 1) { setTimeout(delayedrefit, 500); } else { refit(ev); } });
if (1 == 1) {
elems=document.getElementsByTagName('td');
for (ielems=0; ielems<elems.length; ielems++) {
if (('' + elems[ielems].className) == 'black' || ('' + elems[ielems].className) == 'white') {
//document.title='set1';
elems[ielems].addEventListener(eword, (ev) => { gev=ev; if (1 == 1) { setTimeout(delayedrefit, 500); } else { refit(ev); } });
if (eword == "touchdown" && amove != "" && movefrom != -1 && moveto != -1) {
if (elems[ielems].outerHTML.indexOf(' data-square="' + movefrom + "'") != -1) {
if (tds[itds].innerHTML.indexOf('</span>') != -1) {
document.getElementById(tds[itds].innerHTML.split(' id="')[1].split('"')[0]).addEventListener("click", (ev) => { gev=ev; if (1 == 1) { setTimeout(delayedrefit, 500); } else { refit(ev); } });
} else {
elems[ielems].addEventListener("click", (ev) => { gev=ev; if (1 == 1) { setTimeout(delayedrefit, 500); } else { refit(ev); } });
}
}
if (elems[ielems].outerHTML.indexOf(' data-square="' + moveto + "'") != -1) {
if (tds[itds].innerHTML.indexOf('</span>') != -1) {
document.getElementById(tds[itds].innerHTML.split(' id="')[1].split('"')[0]).addEventListener("click", (ev) => { gev=ev; if (1 == 1) { setTimeout(delayedrefit, 500); } else { refit(ev); } });
} else {
elems[ielems].addEventListener("click", (ev) => { gev=ev; if (1 == 1) { setTimeout(delayedrefit, 500); } else { refit(ev); } });
}
}
}

}
}
elems=document.getElementsByTagName('span');
for (ielems=0; ielems<elems.length; ielems++) {
if (('' + elems[ielems].className) == 'source') {
//if (document.title.replace('set1','') == '') { document.title+='set2'; }
elems[ielems].addEventListener(eword, (ev) => { gev=ev; if (1 == 1) { setTimeout(delayedrefit, 500); } else { refit(ev); } });
}
}
elems=document.getElementsByTagName('th');
for (ielems=0; ielems<elems.length; ielems++) {
if (('' + elems[ielems].className) == 'source') {
//if (document.title.replace('set1set2','') == '') { document.title+='set3'; }
elems[ielems].addEventListener(eword, (ev) => { gev=ev; if (1 == 1) { setTimeout(delayedrefit, 500); } else { refit(ev); } });
}
}
}
}

if (movefrom != -1 && moveto != -1) {
var tds=document.getElementsByTagName('td');
for (var itds=0; itds<tds.length; itds++) {
if (tds[itds].outerHTML.indexOf(' data-square="' + movefrom + '"') != -1) {
//alert('here');
if (tds[itds].innerHTML.indexOf('</span>') != -1) {
document.getElementById(tds[itds].innerHTML.split(' id="')[1].split('"')[0]).click();
} else {
tds[itds].click();
}
}
}
nextmove=moveto;
movefrom=-1;
moveto=-1;
}

}


// https://www.puzzles-on-line-niche.com/images/Rebus1pictograph.jpg#0#0#150#120 https://www.puzzles-on-line-niche.com/images/Rebus1pictograph.jpg#150#0#150#120 https://www.puzzles-on-line-niche.com/images/Rebus1pictograph.jpg#0#120#150#120 https://www.puzzles-on-line-niche.com/images/Rebus1pictograph.jpg#150#120#150#120
function cbi(insw) { // #leftoff#topoff#width#height
var outsw=insw;
var ourbp='';
var ourbs='background-size:contain;width:80px;height:80px;';
if (insw.substring(1).toLowerCase().replace(/^\/\//g, 'http://').replace('https:','http:').indexOf('http:') == 0) {
if (eval('' + insw.substring(1).split('#').length) >= 2) {
if (eval('' + insw.substring(1).split('#').length) >= 3) {
if (eval('' + insw.substring(1).split('#').length) < 5) {
ourbp='background-position: -' + insw.substring(1).split('#')[1] + 'px -' + insw.substring(1).split('#')[2] + 'px;';
ourbs=' background-size:80px 80px;width:80px;height:80px;';
ourbs+=ourbp;
outsw=' style="background:URL(' + insw.substring(1).split('#')[0] + ');background-repeat:no-repeat;' + ourbs + 'font-color:transparent;color:transparent;display:inline-block;overflow-x:hidden;">' + insw.substring(1);
} else {
ourbp='background-position: -' + insw.substring(1).split('#')[1] + 'px -' + insw.substring(1).split('#')[2] + 'px;';
//ourbs=' 80px 80px;width:80px;height:80px;';
ourbs=' background-size:' + insw.substring(1).split('#')[3] + 'px ' + insw.substring(1).split('#')[4] + 'px;background-position: -' + insw.substring(1).split('#')[1] + 'px -' + insw.substring(1).split('#')[2] + 'px;width:' + insw.substring(1).split('#')[3] + 'px;height:' + insw.substring(1).split('#')[4] + 'px;';
ourbs=' width:' + insw.substring(1).split('#')[3] + 'px;height:' + insw.substring(1).split('#')[4] + 'px;';
ourbs+=ourbp;
outsw=' style="background:URL(' + insw.substring(1).split('#')[0] + ');background-repeat:no-repeat;' + ourbs + 'font-color:transparent;color:transparent;display:inline-block;overflow-x:hidden;">' + insw.substring(1);
}
} else {
ourbs+=ourbp;
outsw=' style="background:URL(' + insw.substring(1).split('#')[0] + ');background-repeat:no-repeat;' + ourbs + 'font-color:transparent;color:transparent;display:inline-block;overflow-x:hidden;">' + insw.substring(1);
}
} else {
ourbs+=ourbp;
outsw=' style="background:URL(' + insw.substring(1) + ');background-repeat:no-repeat;' + ourbs + 'font-color:transparent;color:transparent;display:inline-block;overflow-x:hidden;">' + insw.substring(1);
}
} else if (insw.substring(1).toLowerCase().indexOf('data:image/') == 0) {
if (eval('' + insw.substring(1).split('#').length) >= 2) {
if (eval('' + insw.substring(1).split('#').length) >= 3) {
if (eval('' + insw.substring(1).split('#').length) < 5) {
ourbp='background-position: -' + insw.substring(1).split('#')[1] + 'px -' + insw.substring(1).split('#')[2] + 'px;';
ourbs=' background-size:80px 80px;width:80px;height:80px;';
ourbs+=ourbp;
outsw=' style="background:URL(' + insw.substring(1).split('#')[0] + ');background-repeat:no-repeat;' + ourbs + 'font-color:transparent;color:transparent;display:inline-block;overflow-x:hidden;">' + insw.substring(1);
} else {
ourbp='background-position: -' + insw.substring(1).split('#')[1] + 'px -' + insw.substring(1).split('#')[2] + 'px;';
//ourbs=' background-size:80px 80px;width:80px;height:80px;';
ourbs=' background-size:' + insw.substring(1).split('#')[3] + 'px ' + insw.substring(1).split('#')[4] + 'px;background-position: -' + insw.substring(1).split('#')[1] + 'px -' + insw.substring(1).split('#')[2] + 'px;width:' + insw.substring(1).split('#')[3] + 'px;height:' + insw.substring(1).split('#')[4] + 'px;';
ourbs=' width:' + insw.substring(1).split('#')[3] + 'px;height:' + insw.substring(1).split('#')[4] + 'px;';
ourbs+=ourbp;
outsw=' style="background:URL(' + insw.substring(1).split('#')[0] + ');background-repeat:no-repeat;' + ourbs + 'font-color:transparent;color:transparent;display:inline-block;overflow-x:hidden;">' + insw.substring(1);
}
} else {
ourbs+=ourbp;
outsw=' style="background:URL(' + insw.substring(1).split('#')[0] + ');background-repeat:no-repeat;' + ourbs + 'font-color:transparent;color:transparent;display:inline-block;overflow-x:hidden;">' + insw.substring(1);
}
} else {
ourbs+=ourbp;
outsw=' style="background:URL(' + insw.substring(1) + ');background-repeat:no-repeat;' + ourbs + 'font-color:transparent;color:transparent;display:inline-block;overflow-x:hidden;">' + insw.substring(1);
}
}
return outsw;
}

function workouralert(insg) {
var outsg=insg;
//ouralert('' + sourcenum + ' 1:' + insg);
for (var ii=sourcenum; ii>=1; ii--) {
if (outsg.indexOf('' + ii + 'http') != -1) {
outsg=outsg.replace('' + ii + 'http', 'http');
//ouralert('0:' + outsg);
} else {
outsg=outsg.replace('' + ii, '');
}
}
// ouralert('2:' + outsg);
insg=outsg;
outsg='';
for (var iii=0; iii<insg.length; iii++) {
if (insg.charAt(iii) <= ' ') {
outsg+=' ';
} else {
outsg+=insg.substring(iii).substring(0,1);
}
}
//ouralert('3:' + outsg);
while (outsg.indexOf(' ') != -1) {
outsg=outsg.replace(' ', ' ');
}
//ouralert('4:' + outsg);
return outsg;
}

function shufflegamecheck() {
if (document.URL.indexOf('/chess') == -1) {
if (document.getElementById('source').innerText.trim() == '' && !bdone) {
if (workouralert(document.getElementsByTagName('tab' + 'le')[1].innerText).trim() == origsnc.trim()) {
bdone=true;
ouralert('Congratulations on piecing back together ... ' + String.fromCharCode(10) + String.fromCharCode(10) + origsnc);
} else {
bdone=true;
ouralert('Bad luck not piecing back together ... ' + String.fromCharCode(10) + String.fromCharCode(10) + origsnc + String.fromCharCode(10) + String.fromCharCode(10) + " ... when you got ... " + String.fromCharCode(10) + String.fromCharCode(10) + workouralert(document.getElementsByTagName('tab' + 'le')[1].innerText).trim());
}
location.href=document.URL;
}
}
}

function aathen() {
prefx='th';
if (document.getElementById('span0')) { prefx='span'; document.getElementById('dsource').style.display='none'; }
for (var kspan=0; kspan<eval('' + sourcenum); kspan++) {
//ouralert(document.getElementById(prefx + kspan).outerHTML);
if (prefx == 'span') {
if (document.getElementById(prefx + kspan)) {
document.getElementById(prefx + kspan).onclick=function(event) { lastoh=event.target.outerHTML; lastih='>' + event.target.innerHTML + '<'; };
}
}
if (document.getElementById(prefx + kspan)) {
document.getElementById(prefx + kspan).addEventListener("dragstart", (ev) => {
console.log("dragStart at " + document.URL);
dragh=false;
lohfulloh='';
ppt=false;
console.log("lohfulLoh=" + lohfulloh);
sourceid='' + fit(ev.target).id;
if (lastoh != '') { dragh=true; }
// Change the source element's background color
// to show that drag has started
ev.currentTarget.classList.add("dragging");
// Clear the drag data cache (for all formats/types)
ev.dataTransfer.clearData();
// Set the drag's format and data.
// Use the event target's id for the data
ev.dataTransfer.setData("text/plain", ev.target.id);
//ouralert(ev.target.outerHTML);
if (document.URL.indexOf('/chess') != -1) {
if (!dragh) { ouralert('It is not your turn'); }
}
});
document.getElementById(prefx + kspan).addEventListener("dragend", (ev) =>
fittwo(ev.target).classList.remove("dragging")
);
}
}
//ouralert(spanstuff);
}
}

function bodyev() {
if (document.getElementById('clone').innerHTML.indexOf(' ...') == -1) {
document.getElementById('clone').innerHTML+=' ... Double click (or right click) where you want clone to be';
}
document.body.ondblclick=function(e) {
e = e || window.event;
//if (navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i)) {
// document.title='e.preventDefault(); //2';
//}
e.preventDefault();

if (e.touches) {
if (e.touches[0].pageX) {
pos3 = e.touches[0].pageX;
pos4 = e.touches[0].pageY;
} else {
pos3 = e.touches[0].clientX;
pos4 = e.touches[0].clientY;
}
console.log('pos3=' + pos3 + ',pos4=' + pos4);
} else if (e.clientX || e.clientY) {
pos3 = e.clientX;
pos4 = e.clientY;
} else {
pos3 = e.pageX;
pos4 = e.pageY;
}

if (clonedata.indexOf(' style="') != -1) {
document.getElementById('scratchpad').innerHTML+=clonedata.replace(' style="', ' style="position:absolute;left:' + pos3 + 'px;top:' + pos4 + 'px;');
} else if (clonedata.indexOf(" style='") != -1) {
document.getElementById('scratchpad').innerHTML+=clonedata.replace(" style='", " style='position:absolute;left:" + pos3 + "px;top:" + pos4 + "px;");
} else {
document.getElementById('scratchpad').innerHTML+=clonedata.replace(' ', ' style="position:absolute;left:' + pos3 + 'px;top:' + pos4 + 'px;" ');
}
};

document.body.oncontextmenu=function(e) {
e = e || window.event;
//if (navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i)) {
// document.title='e.preventDefault(); //3';
//}
e.preventDefault();

if (e.touches) {
if (e.touches[0].pageX) {
pos3 = e.touches[0].pageX;
pos4 = e.touches[0].pageY;
} else {
pos3 = e.touches[0].clientX;
pos4 = e.touches[0].clientY;
}
console.log('pos3=' + pos3 + ',pos4=' + pos4);
} else if (e.clientX || e.clientY) {
pos3 = e.clientX;
pos4 = e.clientY;
} else {
pos3 = e.pageX;
pos4 = e.pageY;
}

if (clonedata.indexOf(' style="') != -1) {
document.getElementById('scratchpad').innerHTML+=clonedata.replace(' style="', ' style="position:absolute;left:' + pos3 + 'px;top:' + pos4 + 'px;');
} else if (clonedata.indexOf(" style='") != -1) {
document.getElementById('scratchpad').innerHTML+=clonedata.replace(" style='", " style='position:absolute;left:" + pos3 + "px;top:" + pos4 + "px;");
} else {
document.getElementById('scratchpad').innerHTML+=clonedata.replace(' ', ' style="position:absolute;left:' + pos3 + 'px;top:' + pos4 + 'px;" ');
}
};

}

function andlaterstill() {
if (document.URL.indexOf('/chess') == -1) {
if (tdid != '') {
//ouralert(8188);
document.getElementById(tdid).innerHTML=document.getElementById(tdid).innerHTML.substring(0,1);
} else if (document.getElementById('mytable').innerHTML.indexOf(clonedatatwo) != '') {
//ouralert(8288);
document.getElementById('target').innerHTML=document.getElementById('target').innerHTML.split('</ta' + 'ble>')[0] + '</ta' + 'ble>';
}
if (document.getElementsByTagName('div')[0].innerHTML.indexOf(clonedatatwo) != -1) {
//ouralert(8388);
document.getElementsByTagName('div')[0].innerHTML=document.getElementsByTagName('div')[0].innerHTML.replace(clonedatatwo,'');
} else if (document.getElementsByTagName('div')[0].innerHTML.indexOf(clonedatatwo.replace('dragging','')) != -1) {
//ouralert(8488);
document.getElementsByTagName('div')[0].innerHTML=document.getElementsByTagName('div')[0].innerHTML.replace(clonedatatwo.replace('dragging',''),'');
} else if (document.body.innerHTML.split('<ta' + 'ble')[0].indexOf(clonedatatwo.replace('dragging','')) != -1) {
//ouralert(8588);
document.body.innerHTML=document.body.innerHTML.replace(document.body.innerHTML.split('<ta' + 'ble')[0], document.body.innerHTML.split('<ta' + 'ble')[0].replace(clonedatatwo.replace('dragging',''),''));
} else if (document.body.innerHTML.split('<ta' + 'ble')[0].indexOf(clonedatatwo) != -1) {
//ouralert(8688);
document.body.innerHTML=document.body.innerHTML.replace(document.body.innerHTML.split('<ta' + 'ble')[0], document.body.innerHTML.split('<ta' + 'ble')[0].replace(clonedatatwo,''));
}
}
tdid='';
}

function andlater() {
var squares=document.getElementsByTagName('td');

for (var ii=1; ii<=tdnum; ii++) {
if (squares[eval(-1 + ii)].innerHTML.indexOf('<') != -1) {
tdid='' + squares[eval(-1 + ii)].id;
}
}
console.log('tdid=' + tdid);
setTimeout(andlaterstill, 100);
}

function scramble() {
if (!document.getElementById('callback')) {
var iso=0, sofar=',';
var squares=document.getElementsByTagName('td');
secs++;
document.getElementById('score').innerHTML='Score: ' + score + '/' + secs + ' seconds';

for (var ii=1; ii<=tdnum; ii++) {
iso=eval(1 + Math.min(eval(-1 + tdnum),Math.floor(Math.random() * tdnum)));
while (sofar.indexOf(',' + iso + ',') != -1) {
iso=eval(1 + Math.min(eval(-1 + tdnum),Math.floor(Math.random() * tdnum)));
}
squares[eval(-1 + ii)].innerHTML='' + iso + squares[eval(-1 + ii)].innerHTML.substring(1);
sofar+='' + iso + ',';
}
}
}

function scoreingame() {
if (!document.getElementById('callback')) { setInterval(scramble, 1000); }
}

//setTimeout(cloneize, 2000);

</script>
<style>
div {
margin: 0.5em 0;
padding: 2em;
}

#target,
#source {
border: 1px solid black;
padding: 0.5rem;
}

.dragging {
background-color: pink;
}

td {
border: 1px dotted green;
}

</style>
</head>
<body onload="if (1 == 1) { cloneize(); } score=(location.search.split('score=')[1] ? eval('' + decodeURIComponent(location.search.split('score=')[1].split('&')[0])) : 0); secs=(location.search.split('secs=')[1] ? eval('' + decodeURIComponent(location.search.split('secs=')[1].split('&')[0])) : 0); if (eval(score + secs) != 0) { document.getElementById('score').innerHTML='Score ' + score + '/' + secs; } ">
<h1>Experimental Drag and Drop <button id="mybut" onclick="scoreingame();">Game</button></h1>
<h3>RJM Programming <span id=spmore>-</span> July, 2023</h3>
<h3 id="score"></h3>
<h4>Thanks to <a target=_blank title='https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/setData' href='//developer.mozilla.org/en-US/docs/Web/API/DataTransfer/setData'>https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/setData</a></h4>
<div id=dsource>
<p id="source" class="source" draggable="true" contenteditable="true" style="background-color:#f0f0f0;">
Select this <strong id=strongs>editable</strong> element, drag it to the drop zone and then release the selection
to move the element.
</p>
</div>
<div id="target">Drop Zone
<table style="width:90%;height:30%;" id="mytable">
<tr id=tr1><td id="td11">1</td><td id="td12">2</td><td id="td13">3</td></tr>
<tr id=tr2><td id="td21">4</td><td id="td22">5</td><td id="td23">6</td></tr>
<tr id=tr3><td id="td31">7</td><td id="td32">8</td><td id="td33">9</td></tr>
</table>
</div>

<button id="reset">Reset example</button> <button id="clone" style="display:none;" onclick="bodyev();">Clone content</button>
<div id=scratchpad></div>
<script type=text/javascript>

function aaathen() { //evtarget) {
// ouralert(lastevid);
// if (!document.getElementById(lastevid)) {
// if (document.getElementById(lastevid.replace('x',''))) {
// lastevid=lastevid.replace('x','');
// } else {
lastevid=lastevid.replace('th','span');
// }
// }
evtarget=document.getElementById(lastevid);
if (evtarget && document.getElementById('mytable').innerHTML.indexOf('</span>') != -1 && 1 == 7) {
console.log(' ... ' + evtarget.id);
if (document.getElementById('mytable').innerHTML.indexOf('</th>') != -1 || document.getElementById('mytable').innerHTML.indexOf('</span>') != -1) {
//ouralert('Here');
var hostevid=document.getElementById('mytable').innerHTML.split(evtarget.outerHTML)[0].split(' id="')[1].split('"')[0];
document.getElementById(hostevid).innerHTML=evtarget.outerHTML.replace(/th/g, 'span');
evtarget=document.getElementById(lastevid);
}
evtarget.setAttribute('draggable', true);
evtarget.addEventListener("dragstart", (ev) => {
console.log("dragStart At " + document.URL);
dragh=false;
lohfulloh='';
ppt=false;
console.log("lohfullOh=" + lohfulloh);
sourceid='' + fit(ev.target).id;
if (lastoh != '') { dragh=true; }
// Change the source element's background color
// to show that drag has started
ev.currentTarget.classList.add("dragging");
// Clear the drag data cache (for all formats/types)
ev.dataTransfer.clearData();
// Set the drag's format and data.
// Use the event target's id for the data
ev.dataTransfer.setData("text/plain", ev.target.id);
if (document.URL.indexOf('/chess') != -1) {
if (!dragh) { ouralert('It is not your turn'); }
}
});
evtarget.addEventListener("dragend", (ev) =>
fittwo(ev.target).classList.remove("dragging")
);
console.log(' .+. ' + evtarget.id);
}
}

function lastohit() {
var thtoundo='';
if (lastoh != '') {
if (prefx == 'span' && lastoh.indexOf('<span') != 0) { return ''; } //else if (prefx == 'span') { ouralert('oops ' + lastoh); }
if (1 == 2 && document.getElementById('target').innerHTML.indexOf(lastoh.split('>')[0] + '>') != -1) { // && lastoh.substring(0,3) != '<th') { //document.getElementById('source').innerHTML.indexOf(lastoh.split('>')[0] + '>') == -1 && document.getElementById('source').innerHTML.indexOf(lastoh.replace('>', ' style="cursor: progress;">').split('>')[0] + '>') == -1) {
//ouralert('3:' + lastoh);
tdtoundo=document.getElementById('target').innerHTML.split(lastoh.split('>')[0] + '>')[0].split(' id="')[eval(-1 + document.getElementById('target').innerHTML.split(lastoh.split('>')[0] + '>')[0].split(' id="').length)].split('"')[0]
//if (lastoh.indexOf('<span') == 0) { document.getElementById(lastid).style.display='none'; }
lastevid=lastoh.split(' id="')[1].split('"')[0];
//document.getElementById(lastevid).style.visibility='hidden';
//ouralert('8788 ' + lastoh);
document.getElementById('target').innerHTML=document.getElementById('target').innerHTML.replace(lastih, '>⁠' + lastoh.replace(' id="', ' id="x').replace(/th/g, 'span').replace(' dragXgable=', ' data-draggable=') + '<');
lastevid='x' + lastoh.split(' id="')[1].split('"')[0];
document.getElementById(tdtoundo).innerHTML='';
setTimeout(aaathen, 2000); //(document.getElementById(lastevid));
} else if (3 == 4 && document.getElementById('target').innerHTML.indexOf(lastoh.replace('>', ' style="cursor: progress;">').split('>')[0] + '>') != -1) { // && lastoh.substring(0,3) != '<th') { //document.getElementById('source').innerHTML.indexOf(lastoh.replace('>', ' style="cursor: progress;">').split('>')[0] + '>') == -1 && document.getElementById('source').innerHTML.indexOf(lastoh.split('>')[0] + '>') == -1) {
//ouralert('4:' + lastoh);
tdtoundo=document.getElementById('target').innerHTML.split(lastoh.replace('>', ' style="cursor: progress;">').split('>')[0] + '>')[0].split(' id="')[eval(-1 + document.getElementById('target').innerHTML.split(lastoh.replace('>', ' style="cursor: progress;">').split('>')[0] + '>')[0].split(' id="').length)].split('"')[0]
//if (lastoh.indexOf('<span') == 0) { document.getElementById(lastid).style.display='none'; }
lastevid=lastoh.split(' id="')[1].split('"')[0];
//document.getElementById(lastevid).style.visibility='hidden';
//ouralert('81788 ' + lastoh);
document.getElementById('target').innerHTML=document.getElementById('target').innerHTML.replace(lastih, '>⁠' + lastoh.replace(' id="', ' id="x').replace(/th/g, 'span').replace(' dragXgable=', ' data-draggable=') + '<');
lastevid='x' + lastoh.split(' id="')[1].split('"')[0];
document.getElementById(tdtoundo).innerHTML='';
setTimeout(aaathen, 2000); //(document.getElementById(lastevid));
} else if (document.getElementById('target').innerHTML.indexOf(lastih) != -1 || document.getElementById('source').innerHTML.indexOf(lastoh) != -1) {
//ouralert('0:' + prefx + ' ' + lastoh + ' ' + lastih);
lastevid=lastoh.split(' id="')[1].split('"')[0];
if (document.getElementById(lastevid) && lastoh.indexOf('<th') != 0) { // || lastoh.indexOf('<span') != 0)) {
if (prefx == 'th' && document.URL.indexOf('/chess') != -1) { document.getElementById(lastevid).style.visibility='hidden'; } //else { ouralert(lastoh + ' ... ' + document.getElementById('target').innerHTML.indexOf(lastih) + ' ... ' + document.getElementById('target').innerHTML.indexOf(lastoh) + ' ... ' + lastid); }
}
//document.getElementById('source').innerHTML=document.getElementById('source').innerHTML.replace(lastoh, '');
//ouralert(8788);
// document.getElementById('target').innerHTML=document.getElementById('target').innerHTML.replace(lastih, '>⁠' + lastoh.replace(' id="', ' id="x').replace('<span ').replace(' dragXgable=', ' data-draggable=') + '<');
if (prefx == 'span') {
//ouralert(81788);
if (islegal()) {
//ouralert('82788 ' + lastoh);
document.getElementById('target').innerHTML=document.getElementById('target').innerHTML.replace(lastoh, '');
document.getElementById(lastid).innerHTML=lastoh;
lastoh='';
lastih='';
}
} else {
lastevid='x' + lastoh.split(' id="')[1].split('"')[0];
setTimeout(aaathen, 2000); //(document.getElementById(lastevid));
}
} else if (document.getElementById('target').innerHTML.indexOf(lastih) != -1 || document.getElementById('source').innerHTML.indexOf(lastoh.replace('>', ' style="cursor: progress;">')) != -1) {
//ouralert('1:' + lastoh);
lastevid=lastoh.split(' id="')[1].split('"')[0];
if (document.getElementById(lastevid) && lastoh.indexOf('<th') != 0) { // || lastoh.indexOf('<span') != 0)) {
if (prefx == 'th' && document.URL.indexOf('/chess') != -1) { document.getElementById(lastevid).style.visibility='hidden'; }
}
//document.getElementById('source').innerHTML=document.getElementById('source').innerHTML.replace(lastoh.replace('>', ' style="cursor: progress;">'), '');
//ouralert(8888);
document.getElementById('target').innerHTML=document.getElementById('target').innerHTML.replace(lastih, '>⁠' + lastoh.replace(' id="', ' id="x').replace(/th/g, 'span').replace(' dragXgable=', ' data-draggable=') + '<');
if (prefx == 'span') {
if (islegal()) {
document.getElementById('target').innerHTML=document.getElementById('target').innerHTML.replace(lastoh, '');
document.getElementById(lastid).innerHTML=lastoh;
lastoh='';
lastih='';
}
} else {
lastevid='x' + lastoh.split(' id="')[1].split('"')[0];
setTimeout(aaathen, 2000); //(document.getElementById(lastevid));
}
} //else {
//ouralert('why ' + lastoh + ' not found');
//}
lastoh='';
lastih='';
} //else {
//ouralert('Oops ' + lastoh);
//}
}

function fittwo(evot) {
//if (document.URL.indexOf('/chess') != -1 && (1 == 1 || lastid.indexOf(' ') == -1)) { lastid=evot.id + ' '; ouralert(lastid); }
//lastid=evot.id + ' ';
dragh=false;
return evot;
}

function fit(evo) {
var allclear=true;
if (document.URL.indexOf('/chess') != -1) {
//ouralert('here at fit ' + evo.outerHTML);
if (!dragh) {


console.log(evo.outerHTML);
lastoh=evo.outerHTML;
if (lastoh.indexOf(' data-piece="') != -1) {
console.log(itisthiscmove + ' comparing ' + lastoh.split(' data-piece="')[1].substring(0,1) + ' to ' + (itisthiscmove + lastoh.split(' data-piece="')[1].substring(0,1)).substring(0,1) + ' data-piece found regarding ' + lastoh);
if (lastoh.split(' data-piece="')[1].substring(0,1) != (itisthiscmove + lastoh.split(' data-piece="')[1].substring(0,1)).substring(0,1)) {
if (lohfulloh == '') {
if (lastitisthiscmove == ' ') {
console.log('Found bad example');
lastoh='';
lastih='';
lastid='';
}
} else {
console.log('Use ' + lohfulloh);
allclear=false;
lastoh=lohfulloh;
ppt=true; // maybe okay?
}
}
} else {
console.log('No data-piece found regarding ' + lastoh);
}
if (lastoh != '' && allclear) {
lastih='>' + evo.innerHTML + '<';
lastid=evo.id + ' ';
}
if (lohfulloh == '') {
if (evo.outerHTML.indexOf('<td') == 0 && evo.outerHTML.replace('<th>','<span').indexOf('<span') != -1) {
if (evo.outerHTML.indexOf(' data-piece="') != -1) {
console.log(itisthiscmove + ' comparing ' + lastoh.split(' data-piece="')[1].substring(0,1) + ' to ' + (itisthiscmove + lastoh.split(' data-piece="')[1].substring(0,1)).substring(0,1) + ' data-piece found regarding ' + lastoh);
if (evo.outerHTML.split(' data-piece="')[1].substring(0,1) == (itisthiscmove + evo.outerHTML.split(' data-piece="')[1].substring(0,1)).substring(0,1)) {
lohfulloh=lastoh;
}
}
}

// lohfulloh=lastoh;
console.log("Lohfulloh=" + lohfulloh);
}
}
//ouralert(lastoh);
//if (document.getElementById('target').outerHTML.indexOf('>' + evo.innerHTML + '<') != -1) { ouralert('Re-move >' + evo.innerHTML + '<'); }
}
return evo;
}


const source = document.querySelector("#source");
if (document.URL.indexOf('traditional=') == -1) {
source.addEventListener("dragstart", (ev) => {
console.log("dragStart " + document.URL);
dragh=false;
lohfulloh='';
ppt=false;
console.log("lohFulloh=" + lohfulloh);
sourceid='' + fit(ev.target).id;
if (lastoh != '') { dragh=true; }
// Change the source element's background color
// to show that drag has started
ev.currentTarget.classList.add("dragging");
// Clear the drag data cache (for all formats/types)
ev.dataTransfer.clearData();
// Set the drag's format and data.
// Use the event target's id for the data
ev.dataTransfer.setData("text/plain", ev.target.id);
if (document.URL.indexOf('/chess') != -1) {
if (!dragh) { ouralert('It is not your turn'); }
}
});
source.addEventListener("dragend", (ev) =>
fittwo(ev.target).classList.remove("dragging")
);
}

const target = document.querySelector("#target");
if (navigator.userAgent.match(/Android|BlackBerry|iPhone|iPod|Opera Mini|IEMobile/i) && ('' + source.outerHTML).indexOf('<p') == 0 && ('' + target.outerHTML).indexOf('<span') == -1 && ('' + target.outerHTML).indexOf('>Drop Zone') != -1 && document.body.innerHTML.indexOf('Numbe' + 'rs Guessi' + 'ng Ga' + 'me') != -1) {
target.innerHTML='<span id=sdropz>Drop Zone</span>' + target.outerHTML.split('>Drop Zone')[1].split('</div>')[0];
}
target.addEventListener("dragover", (ev) => {
if (lastbco) { lastbco.style.backgroundColor='white'; lastbco=null; }
if (ev.target.outerHTML.indexOf('<table') != 0 && ev.target.outerHTML.indexOf(' data-piece="') != -1) {
if (ev.target.outerHTML.split(' data-piece="')[1].substring(0,1) == (itisthiscmove + ev.target.outerHTML.split(' data-piece="')[1].substring(0,1)).substring(0,1)) {
lohfulloh=ev.target.outerHTML;
console.log("LOHfulloh=" + lohfulloh);
}
}
//console.log("dragOver " + ev.target.id + ' ' + ('' + ev.target.style.backgroundColor).replace('white','') + ' ' + document.body.innerHTML.indexOf('tab' + 'lece' + 'llb' + 'c'));
//if (navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i)) {
// document.title='ev.preventDefault(); //4';
//}
ev.preventDefault();
if (('' + ev.target.id).indexOf('td') == 0 && ('' + ev.target.style.backgroundColor).trim().replace('white','') == '' && document.body.innerHTML.indexOf('Numbe' + 'rs Guessi' + 'ng Ga' + 'me') != -1) {
//document.getElementById(sourceid).style.opacity='0.6';
lastbco=ev.target;
ev.target.style.backgroundColor='pink';
if (document.getElementById('mybut')) {
if (document.getElementById('mybut').innerHTML.indexOf(' .. ') == -1) {
document.getElementById('mybut').innerHTML=document.getElementById('mybut').innerHTML.replace(' Game Game', ' Game');
document.getElementById('mybut').innerHTML+=' .. current guess is ' + ev.target.innerHTML;
} else {
document.getElementById('mybut').innerHTML=document.getElementById('mybut').innerHTML.split(' .. ')[0] + ' .. current guess is ' + ev.target.innerHTML;
}
}
if (document.getElementById('sdropz')) {
if (document.getElementById('sdropz').innerHTML.indexOf(' .. ') == -1) {
document.getElementById('sdropz').innerHTML+=' .. current guess is ' + ev.target.innerHTML;
} else {
document.getElementById('sdropz').innerHTML=document.getElementById('sdropz').innerHTML.split(' .. ')[0] + ' .. current guess is ' + ev.target.innerHTML;
}
}
}
//document.getElementById(sourceid).style.cursor='progress';
//ev.target.style.cursor='progress';
//ev.target.dataTransfer.dropEffect = 'progress';
});
target.addEventListener("drop", (ev) => {
console.log("Drop 2");
if (lohfulloh != '') {
console.log("lohfulloh=" + lohfulloh);
if (lohfulloh.indexOf(' data-piece="') != -1) {
if (ev.target.outerHTML.indexOf(' data-piece="') != -1 && ev.target.outerHTML != lohfulloh) {
if (ev.target.outerHTML.split(' data-piece="')[1].substring(0,1) != lohfulloh.split(' data-piece="')[1].substring(0,1)) {
console.log('Potential piece take');
ppt=true;
}
}
}
}
loh=ev.target.id;
lohoh=bigv(ev.target.outerHTML.split('>')[0] + '></' + ev.target.outerHTML.substring(1).split(' ')[0].split('>')[0] + '>');
//if (navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i)) {
// document.title='ev.preventDefault(); //5';
//}
ev.preventDefault();
// Get the data, which is the id of the source element
const data = ev.dataTransfer.getData("text");
const source = document.getElementById(data);

console.log('' + ev.target.id);
if (!document.getElementById('callback')) {
lastevid=ev.target.id;
//ouralert(lastevid);
//ev.target.setAttribute('draggable', true);
if (lastoh == '') {
//ouralert('suspicious ' + document.getElementById(sourceid).outerHTML);
lastoh=ev.target.outerHTML;
lastih='>' + ev.target.innerHTML + '<';
lastid=ev.target.id;
} else if (prefx == 'span') {
if (lastid.indexOf(' ') != -1) {
lastid=lastid.trim();
} else {
lastid=ev.target.id;
}
}
setTimeout(lastohit, 1000);
if (('' + ev.target.style.backgroundColor).indexOf(',0.6') != -1 || ('' + ev.target.style.backgroundColor).indexOf(',0.5') != -1) {
//ouralert('564 ' + ev.target.getAttribute('data-square'));
ev.target.style.filter='invert(1)';
ev.target.style.backgroundColor='rgba(255,255,255,0.6)';
}
if (('' + ev.target.id).substring(0,2) == 'td' && secs > 0 && document.URL.indexOf('/planet_') == -1) {
score+=eval(ev.target.innerHTML.substring(0,1));
}
} else if (document.getElementById('callback')) {
secs++;
if (('' + ev.target.getAttribute('data-answer')) == ('' + document.getElementById('source').getAttribute('data-answer')) || ('' + ev.target.getAttribute('data-answer')) == ('' + document.getElementById(sourceid).getAttribute('data-answer'))) {
score++;
document.getElementById('score').innerHTML='Score: ' + score + '/' + secs + '';
} else {
document.getElementById('score').innerHTML='Score: ' + score + '/' + secs + '';
if (document.getElementById('source').outerHTML.indexOf('<ta' + 'ble') == 0) {
ouralert(('Correct answer was ' + document.getElementById(sourceid).getAttribute('data-answer')).replace('null',''));
} else {
ouralert(('Correct answer was ' + document.getElementById('source').getAttribute('data-answer')).replace('null',''));
}
}
location.href=document.getElementById('callback').value + '?score=' + score + '&secs=' + secs;
}
if (1 == 2) {
clonedatatwo=document.getElementById(sourceid).outerHTML;
document.getElementById('mytable').innerHTML=document.getElementById('mytable').innerHTML.replace(clonedatatwo, '');
ev.target.innerHTML=ev.target.innerHTML.substring(0,1) + clonedatatwo;
} else if (secs > 0 && (9 == 9 || ('' + ev.target.id).substring(0,2) == 'td')) {
if (source) { source.style.cursor='progress'; }
clonedatatwo=document.getElementById(sourceid).outerHTML;
andlater();
//document.getElementById('mytable').innerHTML=document.getElementById('mytable').innerHTML.replace(clonedatatwo, '');
//ev.target.innerHTML=ev.target.innerHTML.substring(0,1) + clonedatatwo;
//document.getElementById('target').appendChild(source);
if (('' + ev.target.id).substring(0,2) != 'td') {
document.getElementById('target').insertAdjacentHTML('beforeend', clonedatatwo);
} else {
if (source) { source.style.cursor='progress'; }
ev.target.insertAdjacentHTML('beforeend', clonedatatwo);
}
} else {
try {
ev.target.appendChild(source);
} catch(ers) { }
}

if (ev.touches) {
if (ev.touches[0].pageX) {
pos3 = ev.touches[0].pageX;
pos4 = ev.touches[0].pageY;
} else {
pos3 = ev.touches[0].clientX;
pos4 = ev.touches[0].clientY;
}
console.log('pos3 = ' + pos3 + ',pos4 = ' + pos4);
} else if (ev.clientX || ev.clientY) {
pos3 = ev.clientX;
pos4 = ev.clientY;
console.log('pos3 = ' + pos3 + ' ,pos4 = ' + pos4);
} else {
pos3 = ev.pageX;
pos4 = ev.pageY;
console.log('pos3 = ' + pos3 + ', pos4 = ' + pos4);
}

});


const reset = document.querySelector("#reset");
reset.addEventListener("click", () => document.location.reload());

</script>
<style>
@media only screen and (min-device-width: 320px) and (max-device-width: 765px) and (orientation: portrait) {
#target { text-shadow:-1px 1px 1px #ff2d95; }
td[data-answer*="THE "] {
font-size: 10px;
}
}

@media only screen and (min-device-width: 320px) and (max-device-width: 765px) and (orientation: landscape) {
#target { text-shadow:-1px 1px 1px #ff2d95; }
td[data-answer*="THE "] {
font-size: 10px;
}
}
}
</style>
</body>
</html>