
var moves0 = new Array(51,35,6,21,50,34,12,20,57,42,5,33,62,45,10,26,54,46,21,36,59,43,3,24,43,36,33,42,58,51,42,51,45,51,24,17,35,26,17,49,56,57,49,42,36,43,42,43,52,43,1,16,43,35,0,1,61,54,4,12,60,52,7,3,51,36,9,17,36,19,16,10,57,33,10,4,19,4,12,4,63,57,2,16,52,44,11,27,26,19,91,91,1,2,44,43,3,19,33,32,17,25,34,25,2,1,32,33,16,9,54,9,1,9,48,32,4,12,55,39,15,23,53,45,19,27,57,58,9,11,32,24,14,30,39,30,27,30,46,38,23,31,25,17,8,17,24,17,11,9,58,26,13,29,38,31,30,31,43,34,31,7,34,25,7,0,33,34 );
var names0 = new Array();
var base0 = -1;
var pieces = "KQNBR ";

var moves1 = new Array(52,36,10,26,62,45,11,19,51,35,26,35,45,35,6,21,57,42,8,16,61,52,12,20,60,62,127,61,5,12,53,37,4,6,71,5,62,63,3,10,48,32,1,18,58,44,5,4,52,45,0,1,59,51,2,11,51,53,18,35,44,35,20,28,35,44,11,20,37,29,20,34,44,17,10,2,61,58,19,27,49,41,12,33,42,48,33,40,41,34,40,58,48,58,2,34,36,27,28,36,45,52,34,50,53,35,1,2,55,47,36,44,27,19,50,51,58,43,51,52,19,11,21,11,35,11,52,51,56,60,44,52,63,62,16,24,54,46,51,23,17,53,23,18,11,18,2,18,60,57,18,34,57,9,34,32,53,60,32,40,9,11,24,32,62,53,40,41,43,58,41,57,58,48,4,0,11,12,57,49,12,52,49,52,53,52,0,4,52,53,15,31,60,42,4,1,42,33,1,3,53,52,32,40,33,42,13,21,42,33,6,13,48,42,3,1,42,48,1,25,46,38,25,1,52,43,1,3,43,34,3,59,33,40,59,56,34,41,56,63,38,31,63,47,48,42,47,45,40,58,45,29,31,23,14,22,42,36,29,31,58,49 );
var names1 = new Array();
var base1 = -1;
var pieces = "KQNBR ";

var moves2 = new Array(51,35,6,21,50,34,12,20,62,45,11,27,57,42,5,12,58,30,15,23,30,21,12,21,59,41,10,18,52,44,1,11,56,59,4,6,71,5,61,43,9,17,34,27,18,27,44,36,27,36,43,36,0,1,60,62,127,61,17,25,61,60,3,17,36,57,2,9,41,50,14,22,35,27,20,27,42,27,9,27,59,27,5,3 );
var names2 = new Array();
var base2 = -1;
var pieces = "KQNBR ";

var moves3 = new Array(51,35,11,27,50,34,12,20,57,42,5,12,62,45,6,21,58,30,15,23,30,21,12,21,52,44,4,6,71,5,59,50,1,16,56,59,10,26,35,26,3,24,34,27,16,26,50,51,5,3,45,35,20,27,61,52,24,17,60,62,127,61,26,36,51,50,36,42,50,42,2,20,42,50,0,2,50,57,2,10,59,51,3,2,35,20,13,20,52,38,10,34,55,47,17,18,57,43,6,7,61,59,8,24,49,41,34,42,43,52,2,5,38,31,9,25,31,22,21,3,22,43,25,33,52,38,18,4,44,36,3,30,51,50,42,50,43,50,4,18,38,52,18,26,59,61,26,42,36,27,20,27,50,57,42,51,52,28,5,3,28,29,7,6,29,20,6,7,20,22,7,6,22,20,6,7,57,29,51,42,20,22,7,6,29,20,6,7,20,29,7,6,54,46,6,5,62,54,42,21,22,15,21,13,47,39,30,51,61,59,51,42,59,43,3,19,43,45,5,12,15,7,27,35,7,2,19,21,2,26,12,4,45,37,13,9,37,36,4,13,26,34,13,5,29,15,21,13,34,20,9,11,20,28 );
var names3 = new Array();
var base3 = -1;
var pieces = "KQNBR ";

var moves4 = new Array(52,36,12,28,62,45,1,18,61,25,8,16,25,32,6,21,60,62,127,61,5,12,61,60,9,25,32,41,11,19,50,42,4,6,71,5,55,47,2,9,51,35,5,4,57,51,12,5,48,32,3,11,32,25,16,25,56,0,9,0,35,27,18,24,41,48,10,18,49,33,24,9,42,34,4,2,27,18,11,18,34,26,9,3,58,49,19,26,33,26,18,26,49,28,21,11,28,49,26,33,51,41,11,26,49,56,0,36,45,35,3,9,59,52,9,19,41,26,33,26,52,38,2,4,60,59,36,22,38,37,26,33,37,58,22,36,59,60,33,24,48,41,24,0,58,49,25,33,60,44,36,22,44,4,0,4,49,58,19,36,41,27,36,26,35,41,26,43 );
var names4 = new Array();
var base4 = -1;
var pieces = "KQNBR ";

var moves5 = new Array(51,35,11,27,50,34,12,20,57,42,5,12,62,45,6,21,58,30,15,23,30,21,12,21,52,44,4,6,71,5,59,51,27,34,61,34,1,11,60,62,127,61,10,26,61,59,26,35,45,35,11,17,34,52,2,11,52,45,0,1,42,36,21,35,51,35,11,32,35,3,5,3,59,3,1,3,36,26,3,51,49,41,32,18,26,9,18,45,54,45,17,11,62,54,14,30,41,33,11,17,54,61,17,11,61,54,11,17,54,61,17,11 );
var names5 = new Array();
var base5 = -1;
var pieces = "KQNBR ";

var moves6 = new Array(51,35,6,21,50,34,12,20,57,42,5,33,62,45,4,6,71,5,58,30,11,19,52,44,1,11,59,50,9,17,61,43,33,42,49,42,15,23,30,39,2,9,45,51,14,30,39,46,21,31,50,59,31,14,55,39,13,29,39,30,23,30,53,45,3,12,59,41,6,13,60,58,120,59,5,7,34,26,19,26,51,34,26,35,42,35,29,37,46,53,14,31,43,50,37,44,53,44,9,27,41,43,0,6,34,28,11,28,35,28,31,37,44,37,30,37,63,7,6,7,43,22,13,5,59,27 );
var names6 = new Array();
var base6 = -1;
var pieces = "KQNBR ";

var moves7 = new Array(51,35,11,27,50,34,12,20,57,42,5,12,62,45,6,21,58,30,15,23,30,39,4,6,71,5,52,44,9,17,39,21,12,21,34,27,20,27,49,33,2,9,61,52,10,26,33,26,17,26,56,57,9,18,60,62,127,61,1,11,52,25,3,10,59,43,5,3,61,59,0,1,25,18,10,18,57,1,3,1,35,26,21,42,43,42,18,26,42,26,11,26,55,47,26,36,59,27,1,57,62,55,36,53,27,3,6,15,3,11,8,24,11,13,57,49,48,32,53,59,13,12,49,33,45,35,59,44,35,18,33,34,12,44,34,18,44,28,18,42,28,24,42,40,47,39,15,22,54,38,22,21,24,29,21,20,29,37,14,30,39,30,23,30,37,33,20,28,55,54,40,48,54,45,48,40,45,52,40,46,52,51,46,54,51,43,54,46,43,52,46,40,52,51,40,46,33,34,28,27 );
var names7 = new Array();
var base7 = -1;
var pieces = "KQNBR ";

var moves8 = new Array(52,36,12,28,62,45,1,18,61,25,8,16,25,32,6,21,60,62,127,61,5,12,61,60,9,25,32,41,11,19,50,42,4,6,71,5,55,47,2,9,51,35,5,4,57,51,12,5,48,32,15,23,41,50,18,1,50,43,10,18,51,61,1,11,61,46,3,10,58,51,14,22,59,58,6,15,49,41,5,14,58,50,11,5,51,44,5,20,56,59,0,2,43,61,14,5,59,51,10,1,50,57,9,0,41,33,0,9,32,25,16,25,60,59,1,10,59,58,5,14,58,59,2,3,35,28,19,28,51,3,4,3,59,3,20,3,42,34,25,34,61,34,21,4,57,48,4,19,34,41,19,25,47,39,25,35,44,35,28,35,39,31,10,12,48,51,18,26,51,50,26,33,31,22,13,22,50,34,23,31,36,28,9,45,54,45,14,28,45,37,28,37,34,6,15,23,41,50,12,14,6,3,37,46,53,46,14,28,3,5,23,30,62,54 );
var names8 = new Array();
var base8 = -1;
var pieces = "KQNBR ";

var moves9 = new Array(52,36,10,26,62,45,11,19,51,35,26,35,45,35,6,21,57,42,8,16,61,52,12,20,60,62,127,61,5,12,53,37,4,6,71,5,62,63,3,10,48,32,1,18,58,44,5,4,52,45,0,1,59,51,2,11,35,41,9,17,54,38,11,2,38,30,21,11,51,53,12,5,45,54,2,9,56,59,14,22,44,58,1,2,59,43,18,33,43,47,5,14,58,44,4,12,63,62,2,4,61,59,13,29,30,21,93,93,11,21,47,46,12,13,44,17,10,1,17,44,21,31,46,38,31,21,38,39,22,30,37,30,21,38,53,51,38,44,51,44,33,50,44,17,9,0,59,19,13,9,17,16,9,41,19,20,41,49,16,34,6,7,36,28,1,8,62,63,0,54,63,54,50,35 );
var names9 = new Array();
var base9 = -1;
var pieces = "KQNBR ";

var moves10 = new Array(52,36,10,26,62,45,11,19,51,35,26,35,45,35,6,21,57,42,8,16,61,52,12,20,60,62,127,61,5,12,53,37,4,6,71,5,62,63,3,10,48,32,1,18,58,44,5,4,44,62,0,1,59,51,20,28,35,41,18,24,41,24,10,24,62,8,1,0,8,44,24,33,51,43,2,20,37,29,20,11,56,40,33,24,40,41,9,25,32,25,16,25,42,25,11,18,52,45,0,1,50,34,24,0,44,30,18,36,45,36,21,36,30,12,4,12,41,40,0,18,49,33,15,31,25,8,12,8,40,8,1,33,43,45,33,34,45,31,36,53,63,62,53,47,62,63,47,53,63,62 );
var names10 = new Array();
var base10 = -1;
var pieces = "KQNBR ";

var moves11 = new Array(51,35,6,21,50,34,12,20,57,42,5,33,62,45,4,6,71,5,58,30,10,26,52,44,26,35,44,35,15,23,30,39,11,27,56,58,27,34,61,34,1,18,60,62,127,61,33,12,61,60,9,17,48,40,2,9,39,46,0,2,34,48,12,19,35,27,21,27,42,27,19,46,55,46,20,27,48,27,3,21,59,32,5,3,58,59,3,11,32,38,2,3,38,11,3,11,60,4,6,15,27,36 );
var names11 = new Array();
var base11 = -1;
var pieces = "KQNBR ";

var moves12 = new Array(52,36,10,26,62,45,12,20,51,35,26,35,45,35,1,18,35,25,11,19,50,34,6,21,57,42,8,16,25,40,19,27,36,27,20,27,34,27,18,33,61,34,2,38,34,52,38,52,59,52,3,12,58,44,33,27,40,50,27,44,50,44,12,20,60,62,127,61,5,26,61,60,4,6,71,5 );
var names12 = new Array();
var base12 = -1;
var pieces = "KQNBR ";

var moves13 = new Array(51,35,6,21,50,34,12,20,57,42,5,33,62,45,10,26,54,46,1,18,61,54,21,36,58,51,33,42,49,42,4,6,71,5,60,62,127,61,13,29,51,44,36,42,59,43,26,35,45,35,42,36,34,26,18,35,44,35,9,17,54,36,29,36,43,36,2,16,26,17,8,17,36,28,3,21,28,44,21,23,44,23,14,23,61,60,16,34,48,40,17,25,56,59,5,29,35,49,29,27 );
var names13 = new Array();
var base13 = -1;
var pieces = "KQNBR ";

var moves14 = new Array(52,36,10,26,62,45,12,20,51,35,26,35,45,35,1,18,57,42,11,19,54,38,15,23,55,39,8,16,61,54,5,12,58,44,18,35,59,35,20,28,35,59,2,20,42,27,0,2,50,42,6,21,27,12,3,12,38,30,23,30,39,30,7,63,54,63,21,38,44,51,12,5,59,45,5,7,63,54,7,39,49,41,19,27,45,46,39,46,53,46,2,3,60,52,4,12,51,58,27,35,58,40,12,4,42,35,28,35,56,63,38,28,63,7,4,11,7,3,11,3,40,49,20,38,52,51,28,45 );
var names14 = new Array();
var base14 = -1;
var pieces = "KQNBR ";

var moves15 = new Array(52,36,12,28,62,45,6,21,45,28,11,19,28,45,21,36,51,35,19,27,61,43,1,18,60,62,127,61,2,38,50,34,36,21,57,42,38,45,59,45,18,35,61,60,5,12,45,59,35,20,34,27,21,27,43,25,10,18,42,27,18,25,59,41,4,6,71,5,27,12,3,12,41,25,8,16,25,41,5,3,58,44,0,2,56,58,15,23,55,47,20,35 );
var names15 = new Array();
var base15 = -1;
var pieces = "KQNBR ";

var moves16 = new Array(52,36,10,26,62,45,12,20,51,35,26,35,45,35,1,18,35,25,11,19,50,34,6,21,57,42,8,16,25,40,19,27,36,27,20,27,34,27,18,33,61,52,5,26,60,62,127,61,4,6,71,5,52,45,2,29,58,30,5,4,59,51,9,25,56,59,33,43,40,57,15,23,30,39,25,33,42,32,26,19,39,46,0,2,49,41,14,30,46,19,3,19,54,46,21,11,45,54,19,21,48,40,16,24,40,33,24,33,51,48,29,22,27,19,30,38,48,51,6,14,53,45,21,19,45,38,19,35,62,63,11,21,61,37,21,36,51,43,36,53,37,53,22,43,53,51,35,44,51,43,2,58,32,49,44,53,57,51,58,59,49,59,4,60 );
var names16 = new Array();
var base16 = -1;
var pieces = "KQNBR ";

var moves17 = new Array(51,35,6,21,50,34,12,20,57,42,5,33,62,45,10,26,54,46,1,18,61,54,21,36,58,51,33,42,49,42,4,6,71,5,60,62,127,61,18,24,35,26,3,10,45,35,36,51,59,51,24,34,51,30,13,21,30,37,34,28,35,41,0,1,37,35,9,17,53,37,28,13,61,59,5,3,42,34,2,9,54,9,1,9,26,17,9,17,34,26,17,18,56,58,11,27,26,19,91,91,3,19,35,44,19,59,58,59,14,22,59,58,18,58,44,58,10,17,58,26 );
var names17 = new Array();
var base17 = -1;
var pieces = "KQNBR ";

var moves18 = new Array(52,36,10,26,62,45,11,19,51,35,26,35,45,35,6,21,57,42,8,16,61,52,12,20,60,62,127,61,5,12,53,37,4,6,71,5,62,63,3,10,48,32,1,18,58,44,5,4,52,45,0,1,59,51,2,11,35,41,9,17,44,53,11,2,53,46,21,11,56,60,2,9,36,28,1,3,51,53,4,5,45,36,19,28,37,28,11,26,41,26,17,26,46,37 );
var names18 = new Array();
var base18 = -1;
var pieces = "KQNBR ";

var moves19 = new Array(51,35,6,21,50,34,12,20,57,42,5,33,62,45,21,36,59,50,13,29,54,46,1,18,61,54,4,6,71,5,60,62,127,61,33,42,49,42,18,24,34,26,11,19,42,34,9,17,58,51,36,51,45,51,19,27,34,27,20,27,52,44,2,20,50,42,5,13,61,58,0,1,56,57,13,12,48,32,20,13,54,61,15,23,61,43,3,11,42,50,13,20,43,25,11,3,58,59,14,30,51,45,12,14,45,28,29,37,25,61,3,21,61,54,1,3,44,36,27,36,54,36,14,12,50,42,20,27,59,60,6,14,28,38,21,13,36,27,3,27,60,12,13,12,57,60,12,3,38,28,3,21,26,17,21,17,46,37,27,35,28,45,24,41,60,57,17,21,42,10 );
var names19 = new Array();
var base19 = -1;
var pieces = "KQNBR ";

var moves20 = new Array(51,35,11,27,50,34,12,20,57,42,5,12,34,27,20,27,58,37,6,21,59,50,4,6,71,5,52,44,10,26,35,26,12,26,62,45,1,18,61,52,27,35,44,35,18,35,45,35,3,35,37,46,2,20,60,62,127,61,0,2,52,45,9,17,61,60,35,33,46,28,26,35,48,40,33,26,28,35,26,35,56,59,35,26,50,32,8,24,32,35,26,35,59,35,5,3,60,59,3,35,59,35,6,5,62,61,5,12,61,52,20,41,52,44,2,26,44,51,15,23,45,52,21,4,52,45,4,21,35,43,26,28,55,47,28,26,43,35,26,2,45,52,2,26,52,43,23,31,54,46,14,22,42,52,21,11,35,36,26,28,52,35,41,27,36,52,28,52,43,52,11,26,35,25,26,36,51,44,36,19,44,35,27,18,25,19,12,19,52,34,18,4,47,39,13,21,34,6,19,18,6,48,18,19,48,27,19,12,27,6,12,19,6,41,19,12,41,59,12,19,59,52,4,11,52,43,11,4,43,34,19,12,34,52,12,19,46,38,31,38,52,38,4,13,53,37,21,29,38,59,13,27,59,32,27,45,32,41,45,52,41,13,52,31,35,34,31,52,34,42,52,31,49,33,19,12,13,34,12,19,33,24,17,24,42,35,31,45,34,61,45,27,61,52,27,9,52,59,9,27,35,44,19,26,59,32,27,13,32,11,26,34,40,32,34,26,11,25,26,27,44,43,27,26,43,42,26,19,42,35,13,41,25,4,19,12,4,22,41,32,22,29,12,21 );
var names20 = new Array();
var base20 = -1;
var pieces = "KQNBR ";

var moves21 = new Array(51,35,11,27,50,34,12,20,57,42,5,12,34,27,20,27,58,37,10,18,52,44,2,29,54,38,29,20,55,39,1,11,39,31,6,23,61,52,11,17,56,58,12,19,62,47,19,37,47,37,20,11,63,62,14,30,31,22,94,94,15,22,60,51,3,12,49,41,22,30,37,43,4,2,64,3,62,63,13,21,59,62,23,13,62,46,12,19,46,19,13,19,53,45,3,6,43,26,2,3,52,43,11,2,42,52,17,0,43,15,6,5,63,23,0,10,52,46,19,13,23,55,10,20,26,43,20,14,58,63,3,12,43,53,5,3,15,29,7,55,63,55,14,29,38,29,3,7,55,7,13,7,44,36,7,13,53,38,13,19,38,44,27,36,45,36,9,17,41,33,2,16,44,38,19,25,51,43,25,40 );
var names21 = new Array();
var base21 = -1;
var pieces = "KQNBR ";

var moves22 = new Array(51,35,11,27,50,34,12,20,57,42,5,12,34,27,20,27,58,37,6,21,52,44,4,6,71,5,62,45,2,29,55,47,10,18,54,38,29,22,45,28,21,11,28,22,13,22,61,54,11,17,60,62,127,61,6,7,42,52,22,30,37,46,12,19,59,43,1,16,49,41,3,12,46,19,12,19,53,37,30,37,44,37,0,4,37,29,16,10,61,53,17,11,38,30,19,12,47,39,12,44,56,59,10,25,43,44,4,44,62,55,11,17,52,46,17,2,46,61,44,12,59,43,2,19,61,46,19,36,54,36,27,36,43,44,25,35,55,47,12,28,47,38,15,31,38,31,35,29,53,29,5,29,46,29,28,29,44,36,7,15,36,12,9,25,12,8,25,33,31,38 );
var names22 = new Array();
var base22 = -1;
var pieces = "KQNBR ";

var moves23 = new Array(51,35,11,27,50,34,12,20,57,42,5,12,62,45,6,21,58,30,15,23,30,21,12,21,52,44,4,6,71,5,56,58,10,18,61,43,1,11,60,62,127,61,27,34,43,34,20,28,55,47,28,35,44,35,11,17,34,41,5,4,61,60,2,29,60,4,3,4,59,51,4,11,58,60,0,3,51,37,17,27,42,27,18,27,45,28,21,28,60,28,29,20,37,44,6,5,44,43,13,21,28,60,20,13,43,42,11,19,60,58,13,4,41,59,8,16,59,45,14,22,47,39,23,31,54,46,4,13,48,32,3,11,32,24,5,14,42,41,19,20,41,33,20,4,62,54,4,3,58,26,3,12,33,42,22,30,42,44,30,38,45,59,12,36,54,62 );
var names23 = new Array();
var base23 = -1;
var pieces = "KQNBR ";

var moves24 = new Array(52,36,10,26,62,45,11,19,51,35,26,35,45,35,6,21,57,42,8,16,61,52,12,20,60,62,127,61,5,12,53,37,4,6,71,5,62,63,3,10,48,32,1,18,58,44,5,4,52,45,0,1,59,51,2,11,35,41,9,17,54,38,11,2,38,30,21,11,51,53,12,5,45,54,2,9,56,59,14,22,44,58,1,2,59,43,18,33,43,47,5,14,58,44,4,12,63,62,2,4,61,59,13,29,30,21,93,93,11,21,47,46,12,13,44,17,10,1,17,44,21,31,46,38,31,21,38,39,22,30,37,30,21,38,53,51,38,44,51,44,33,50,44,17,9,0,59,19,13,9,17,16,9,41,19,20,41,49,16,34,6,7,36,28,1,8,62,63,0,54,63,54,50,35 );
var names24 = new Array();
var base24 = -1;
var pieces = "KQNBR ";
var nMoves = new Array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
var EmptyWhitePath = "gif/w.gif";
var EmptyBlackPath = "gif/b.gif";
// Copyright 98,99 by ChessBase GmbH, Germany
function SyncPicture( base, basename )
{	if ( base > -1 ) return base;
	for ( i=0; i < document.images.length; i++ )
	{	if ( document.images[i].name != "" )
			if ( document.images[i].name == basename )
				return i;
			else
				i+= 63;
	}
	return -1;
}
function MoveForward5( moves, names, nm, base, basename )
{	base = SyncPicture( base, basename );
	for ( i=0; nMoves[nm] < moves.length / 2 && i < 10; i++ )
		MoveForward( moves, names, nm, base );
	return base;
}
function MoveBack5( moves, names, nm, base, basename )
{	base = SyncPicture( base, basename );
	for ( i=0; nMoves[nm] > 0 && i < 10; i++ )
		MoveBack( moves, names, nm, base );
	return base;
}
function GoStart( moves, names, nm, base, basename )
{	base = SyncPicture( base, basename );
	while ( nMoves[nm] > 0 )
		MoveBack( moves, names, nm, base );
	return base;
}
function GoEnd( moves, names, nm, base, basename )
{	base = SyncPicture( base, basename );
	while ( nMoves[nm] < moves.length / 2 )
		MoveForward( moves, names, nm, base );
	return base;
}
function MoveForward( moves, names, nm, base, basename )
{	base = SyncPicture( base, basename );
	if ( nMoves[nm] < moves.length / 2 )
	{	var n = nMoves[nm]*2;
		var from = moves[ n ] & 0x3f;
		var to = moves[ n+1 ] & 0x3f;
		names[ n   ] = document.images[ base + from ].src;
		names[ n+1 ] = document.images[ base + to ].src;
		var len = names[n].length;
		var nn = (Math.floor(( to / 8 )) + ( to % 8 ));
		var dest = ( nn % 2 ) == 1 ? "b" : "w";
		var piece = names[n].substring(len-6,len-5);
		if (( moves[ n ] & 0x380 ) == 0x80 )
			piece = "q";
		else if (( moves[ n ] & 0x380 ) == 0x100 )
			piece = "n";
		else if (( moves[ n ] & 0x380 ) == 0x180 )
			piece = "b";
		else if (( moves[ n ] & 0x380 ) == 0x200 )
			piece = "r";
		document.images[ base + to ].src = names[n].substring(0,len-6) + piece + dest + names[n].substring(len-4,len);
		nn = (Math.floor(( from / 8 )) + ( from % 8 ));
		if (( nn % 2 ) == 1 )
			document.images[ base + from ].src = EmptyBlackPath;
		else
			document.images[ base + from ].src = EmptyWhitePath;
		nMoves[nm]++;
		if ( nMoves[nm] < moves.length / 2 && ( moves[ nMoves[nm]*2 ] & 0x40 ) == 0x40 )
			MoveForward( moves, names, nm, base );
	}
	return base
}
function MoveBack( moves, names, nm, base, basename )
{	base = SyncPicture( base, basename );
	if ( nMoves[nm] > 0 )
	{	nMoves[nm]--;
		var from = moves[ nMoves[nm]*2 ] & 0x3f;
		var to = moves[ nMoves[nm]*2+1 ] & 0x3f;
		document.images[ base + from ].src = names[ nMoves[nm]*2 ];
		document.images[ base + to ].src = names[ nMoves[nm]*2+1 ];
		if (( moves[ nMoves[nm]*2 ] & 0x40 ) == 0x40 )
			MoveBack( moves, names, nm, base );
	}
	return base;
}
function GetMoveString( moves, names, nm, base, basename )
{	base = SyncPicture( base, basename );
	if ( nMoves[nm] > 0 && nMoves[nm] <= moves.length / 2 )
	{	var n = (nMoves[nm]-1)*2;
		var from = moves[ n ] & 0x3f;
		var to = moves[ n+1 ] & 0x3f;
		var len = document.images[ base + to ].src.length;
		var piece = document.images[ base + to ].src.substring(len-6,len-5);
		if ( piece == "q" )
			piece = pieces.substring(1,2);
		else if ( piece == "r" )
			piece = pieces.substring(4,5);
		else if ( piece == "b" )
			piece = pieces.substring(3,4);
		else if ( piece == "n" )
			piece = pieces.substring(2,3);
		else if ( piece == "k" )
			piece = pieces.substring(0,1);
		else piece = pieces.substring(5,6);
		var piece2 = "";
		if (( moves[ n ] & 0x380 ) == 0x80 )
			piece2 = pieces.substring(1,2);
		else if (( moves[ n ] & 0x380 ) == 0x100 )
			piece2 = pieces.substring(2,3);
		else if (( moves[ n ] & 0x380 ) == 0x180 )
			piece2 = pieces.substring(3,4);
		else if (( moves[ n ] & 0x380 ) == 0x200 )
			piece2 = pieces.substring(4,5);
		var lines = "abcdefgh";
		var rows = "87654321";
		var fromLine = from%8;
		var fromRow = Math.floor(from/8);
		var toLine = to%8;
		var toRow = Math.floor(to/8);
		var off=1;
		for ( i=0; i <= n; i += 2 )
			if (( moves[i] & 0x40 ) == 0x40 )
				off = off+1;
		var result = (Math.floor((nMoves[nm]-off)/2)+1).toString() + ". ";
		if ( document.images[ base + to ].src.substring(len-7,len-6) == "b" )
			result = result + "... ";
		if ( n >= 2 && (( moves[n] & 0x40 ) == 0x40 ))
		{	if (( moves[n-1] == 62 ) || ( moves[n-1] == 6 ))
				result = result + "0-0"
			else if (( moves[n-1] == 2 + 7 * 8 ) || ( moves[n-1] == 2 + 0 * 8 ))
				result = result + "0-0-0"
			else
			{	var sep = "x";
				from = moves[ n-2 ] & 0x3f;
				to = moves[ n-1 ] & 0x3f;
				fromLine = from%8;
				fromRow = Math.floor(from/8);
				toLine = to%8;
				toRow = Math.floor(to/8);
				result = result	+ lines.substring( fromLine, fromLine+1 ) + rows.substring( fromRow, fromRow+1 )
										+ sep
										+ lines.substring( toLine, toLine+1 ) + rows.substring( toRow, toRow+1 )
										+ piece2 + " ep";
			}
		}
		else
		{	var len = names[ n+1 ].length;
			var substr = names[ n+1 ].substring( len-6, len );
			var sep = (( substr == "/w.gif" ) || ( substr == "\\w.gif" ) ||
						  ( substr == "/b.gif" ) || ( substr == "\\b.gif" )) ? "-" : "x";
			if ( piece2 != "" ) piece = "";
			result = result + piece.toUpperCase() + lines.substring( fromLine, fromLine+1 ) + rows.substring( fromRow, fromRow+1 )
				+ sep
				+ lines.substring( toLine, toLine+1 ) + rows.substring( toRow, toRow+1 )
				+ piece2;
		}
		return result;
	}
	return "";
}
