
var moves0 = new Array(51,35,6,21,50,34,14,22,54,46,10,18,62,45,5,14,61,54,11,27,34,27,18,27,57,42,4,6,71,5,45,28,12,20,60,62,127,61,21,11,53,37,1,18,58,44,11,17,44,53,2,11,52,36,18,12,28,11,3,11,36,28,5,2,56,58,14,5,54,45,2,10,49,41,0,2,59,51,12,18,51,49,8,16,45,52,11,12,42,57,18,33,57,42,33,18,42,57,18,33,58,26,17,11,26,10,2,10,57,42,33,18,42,57,18,33,57,42,33,18,42,57 );
var names0 = new Array();
var base0 = -1;
var pieces = "KQNBR ";

var moves1 = new Array(50,34,6,21,57,42,12,28,62,45,1,18,54,46,5,33,61,54,4,6,71,5,60,62,127,61,28,36,45,30,33,42,49,42,5,4,53,45,36,44,51,43,11,27,59,41,18,24,41,40,10,18,34,27,18,27,45,37,24,18,56,57,3,10,58,49,2,38,42,34,27,34,49,21,14,21,30,36,6,14,43,34,0,3,57,41,18,35,41,44,10,34,62,63,35,29,44,43,38,52,43,3,4,3,61,60,3,4,40,24,9,25,36,51,34,43,51,41,52,45,54,45,43,45,63,62,4,60,24,60,29,44 );
var names1 = new Array();
var base1 = -1;
var pieces = "KQNBR ";

var moves2 = new Array(51,35,6,21,50,34,14,22,54,46,10,18,61,54,11,27,34,27,18,27,62,45,5,14,57,42,4,6,71,5,45,28,12,20,60,62,127,61,21,11,53,37,1,18,58,44,11,17,44,53,18,12,48,32,8,24,59,41,2,11,61,58,11,18,42,25,17,2,52,44,2,19,25,19,3,19,53,60,5,1,54,61,13,21,28,45,19,11,41,50,12,29,60,51,29,19,49,41,1,2,50,59,15,23,51,60,22,30,56,48,11,4,48,50,14,5,61,43,30,38 );
var names2 = new Array();
var base2 = -1;
var pieces = "KQNBR ";

var moves3 = new Array(50,34,6,21,57,42,12,28,62,45,1,18,54,46,5,33,61,54,4,6,71,5,60,62,127,61,28,36,45,30,33,42,49,42,5,4,53,45,36,45,30,45,3,12,52,44,18,28,45,35,28,43,59,52,43,58,56,58,11,19,61,37,10,18,58,61,12,28,52,43,2,11,35,29,11,29,37,29,28,20,43,35,4,12,35,39,21,11,54,47,11,5,29,45,20,28,51,35,28,36,39,36,12,36,45,13,36,44,35,27,0,4,13,9,18,27,34,27,44,12,61,57,15,31,48,32,14,30,47,29,6,14,32,24,14,21,29,43,12,9,57,9,4,44,43,25,44,42,9,8,5,22,8,11,22,28,11,19,21,29,24,16,42,40,19,3 );
var names3 = new Array();
var base3 = -1;
var pieces = "KQNBR ";

var moves4 = new Array(51,35,6,21,50,34,14,22,57,42,11,27,34,27,21,27,52,36,27,42,49,42,5,14,61,34,10,26,62,52,1,18,58,44,4,6,71,5,60,62,127,61,2,38,53,45,18,24,34,13,5,13,45,38,13,61,62,61,3,19,36,28,19,27,44,53,0,5,61,62,14,23,55,39,27,13,53,46,23,44,62,55,13,34,56,57,9,17,57,49,34,27,59,43,24,34,49,57,17,25,55,47,8,16,52,62,26,35,62,45,5,3,48,32,35,42,43,42,27,20,47,55,25,32,57,33,34,51,33,32,51,61,55,47,3,59,42,50,59,58,50,52,15,31,46,60,20,11,52,16,58,56,16,22 );
var names4 = new Array();
var base4 = -1;
var pieces = "KQNBR ";

var moves5 = new Array(50,34,12,28,57,42,1,18,54,46,14,22,61,54,11,19,56,57,2,29,51,43,3,11,49,33,5,14,33,25,18,3,42,27,10,18,25,18,9,18,27,42,6,12,58,40,4,6,71,5,62,45,15,23,60,62,127,61,29,20,59,32,13,29,45,51,3,13,57,41,0,1,61,57,1,41,57,41,5,2,32,16,13,3,40,33,2,1,42,32,6,13,33,42,1,41,48,41,11,10,52,44,20,2,16,24,10,24,42,24,3,20,24,33 );
var names5 = new Array();
var base5 = -1;
var pieces = "KQNBR ";

var moves6 = new Array(51,35,6,21,50,34,14,22,57,42,11,27,34,27,21,27,52,36,27,42,49,42,5,14,61,34,10,26,62,52,1,18,58,44,4,6,71,5,60,62,127,61,2,38,53,45,18,24,34,13,5,13,45,38,13,61,62,61,3,19,36,28,19,27,44,53,0,3,59,60,27,36,38,30,36,29,55,39,24,34,61,62,29,38,48,32,15,23,56,48,23,30,60,57,30,39,57,41,38,20,52,37,20,13,37,22,13,22,41,34,6,7,48,49,26,35,42,35,22,38,34,13,3,35,53,35,38,35,49,53,35,28,53,29,28,60,29,61,60,28,62,63,9,17,13,37,28,31,37,29,31,52,61,58,14,21,29,22,52,20,58,59,20,2,59,61,2,11,22,31,7,14,61,37,11,51,37,38,14,5,31,29,51,58,63,55,58,10,29,37,10,37,38,37,5,4,55,62,8,16,62,53,4,11,53,52,11,19,52,43,19,26,37,34,26,27,34,10,16,24,10,34,12,28,34,38,21,12,38,14,28,36,43,44,12,26,44,52,26,35,14,30,27,34,30,29,34,42,29,31,42,34,31,29,34,42,29,30,42,34,30,31,35,21,31,25,21,35,25,31,35,21,31,23,21,35,23,39,17,25,32,25,24,32,39,36,32,40,25,17,40,48,36,35,34,35,17,9,176,56,137,1,56,16,52,53,16,21,53,62,35,36,1,33,36,29,33,60,21,35 );
var names6 = new Array();
var base6 = -1;
var pieces = "KQNBR ";

var moves7 = new Array(50,34,12,28,57,42,11,19,54,46,10,26,61,54,1,18,48,40,14,22,49,33,5,14,56,57,6,12,52,44,4,6,71,5,51,43,0,1,62,52,2,20,33,25,18,24,58,51,9,17,60,62,127,61,24,9,44,36,6,7,59,58,13,29,51,30,3,4,30,12,4,12,36,29,20,29,42,27,12,11,58,51,9,24,52,42,1,4,42,36,24,9,40,32,9,24,55,39,24,9,62,55,4,1,57,56,9,24,56,40,5,13,51,42,1,3,40,48,14,23,36,30,13,5,48,52,23,14,42,50,3,4,27,44,14,23,54,27,23,14,50,59,15,23,30,36,11,3,52,48,29,2,36,42,23,31,27,36,4,20,42,27,14,23,44,54,7,14,53,37,28,37,54,37,20,28,37,22,5,61,59,61,28,36,43,36,14,22,48,53,3,4,36,28,19,28,53,21,22,14,21,19 );
var names7 = new Array();
var base7 = -1;
var pieces = "KQNBR ";

var moves8 = new Array(51,35,6,21,50,34,14,22,57,42,11,27,34,27,21,27,52,36,27,42,49,42,5,14,61,34,10,26,62,52,1,18,58,44,4,6,71,5,60,62,127,61,2,38,53,45,18,24,34,13,5,13,45,38,13,61,62,61,26,35,42,35,3,17,61,62,17,20,59,43,20,38,56,61,0,2,55,47,38,11,35,27,24,34,44,35,12,28,27,20,92,92,11,20,35,14,6,14,52,37,20,19,43,42,14,23,37,27,19,28,42,43,23,14,27,21,28,19,43,42,19,28,42,43,28,19,43,42,19,28,42,41,2,10,41,43,10,13,43,34,13,21,61,59,9,25,59,11,14,23,34,52,28,26,62,55,26,28,54,46,28,42,55,54,42,34,52,44,22,30,11,51,34,61,54,55,61,45,44,35,21,20,36,28,45,29,51,52,8,24,35,27,25,33,27,24,29,43,52,54,43,35,24,0,35,28,0,5,23,22,5,33,15,31,47,39,30,39,33,39,20,19,39,34,19,35,34,18,22,14,18,9,14,23,9,18,23,14,54,50,35,39,55,54,28,36,18,36,39,36,50,10,14,22,10,8,36,44,54,47,44,42,8,0,42,34,48,32,22,30,32,24,34,32,24,16,30,23,47,54,32,40,54,53,23,14 );
var names8 = new Array();
var base8 = -1;
var pieces = "KQNBR ";

var moves9 = new Array(52,36,10,18,51,35,11,27,57,42,27,36,42,36,1,11,62,45,6,21,36,21,11,21,50,42,2,38,55,47,38,45,59,45,12,20,61,34,5,12,60,62,127,61,21,27,58,44,3,17,45,52,4,6,71,5,56,59,12,19,34,41,27,44,53,44,18,26,61,45,0,4,59,61,4,12,52,53,17,10,53,39 );
var names9 = new Array();
var base9 = -1;
var pieces = "KQNBR ";

var moves10 = new Array(51,35,6,21,50,34,14,22,57,42,11,27,34,27,21,27,52,36,27,42,49,42,5,14,61,34,10,26,62,52,1,18,58,44,4,6,71,5,60,62,127,61,2,38,53,45,18,24,34,13,5,13,45,38,13,61,62,61,3,19,61,62,19,20,59,43,20,34,43,34,24,34,44,53,26,35,42,35,12,28,35,27,14,23,55,39,23,51,56,59,51,24,59,58,9,25,58,50,34,19,52,46,19,34,46,61,34,19,61,46,19,34,38,30,6,13,46,61,34,19,61,46,19,34,62,61,13,12,53,26,12,13,50,53,13,14,53,21,24,17,21,18,34,24,26,17,24,18,17,10,0,5,61,52,5,13,10,19,13,11,19,26,18,24,46,61,11,10,26,19,10,50,52,43,50,48,61,44,14,13,44,38,24,34,38,28,34,28,19,28,25,33,28,21,33,41,36,28,48,54,28,20,13,5 );
var names10 = new Array();
var base10 = -1;
var pieces = "KQNBR ";

var moves11 = new Array(50,34,12,20,57,42,11,27,51,35,5,12,34,27,20,27,58,37,6,21,52,44,2,29,62,52,4,6,71,5,56,58,10,18,52,46,29,20,61,43,5,4,59,41,3,17,41,50,1,11,60,62,127,61,14,22,55,47,12,5,46,52,0,2,50,51,21,31,37,55,31,14,54,38,17,3,53,45,11,17,49,41,5,40,58,50 );
var names11 = new Array();
var base11 = -1;
var pieces = "KQNBR ";

var moves12 = new Array(51,35,6,21,50,34,14,22,57,42,11,27,62,45,5,14,34,27,21,27,52,36,27,42,49,42,10,26,56,57,4,6,71,5,61,52,26,35,42,35,3,24,59,51,24,51,58,51,12,20,60,62,127,61,9,17,61,59,2,9,35,27,20,27,36,27,1,11,51,33,5,2,33,12,14,21,27,19,6,14,59,60,2,26,52,25,9,18,25,18,26,18,57,59,21,42,60,44,13,21,54,38,22,30,55,39,15,23,39,30,23,30,45,35,42,35,59,35,0,7,44,60,18,50,48,32,8,24,53,37,14,22,37,30,22,30,60,61,30,22,61,53,7,2,35,37,50,53 );
var names12 = new Array();
var base12 = -1;
var pieces = "KQNBR ";

var moves13 = new Array(52,36,10,18,51,35,11,27,57,42,27,36,42,36,1,11,62,45,6,21,36,21,11,21,50,42,2,38,55,47,38,45,59,45,3,27,61,52,12,20,60,62,127,61,5,19,45,43,19,10,52,45,27,11,61,59,4,6,71,5,42,34,0,3,43,41,11,12,54,46,10,1,58,44,3,11,59,51,5,3,56,59,15,23,48,40 );
var names13 = new Array();
var base13 = -1;
var pieces = "KQNBR ";

var moves14 = new Array(51,35,6,21,50,34,14,22,57,42,11,27,62,45,5,14,59,41,27,34,41,34,4,6,71,5,52,36,1,16,61,52,10,26,35,27,12,20,60,62,127,61,20,27,36,27,2,29,61,59,5,4,27,19,15,23,55,47,16,33,58,37,21,11,59,51,8,16,34,41,9,25,41,59,26,34,48,32,11,26,32,25,33,43,52,43,26,43,51,43,34,43,42,27,16,25,27,12,6,15,56,0,3,0,12,29,22,29,59,43,0,36,43,25,4,0,37,51,0,3,25,26,36,20,51,37,14,49,45,39,49,21,26,29,20,29,39,29,23,31,54,38,31,38,47,38,15,22,62,54,21,49,29,12,22,21,12,18,3,11,18,1,11,3,19,11,21,20,54,45,49,40 );
var names14 = new Array();
var base14 = -1;
var pieces = "KQNBR ";

var moves15 = new Array(50,34,12,28,57,42,6,21,62,45,1,18,54,46,5,33,61,54,4,6,71,5,60,62,127,61,5,4,51,43,33,42,49,42,28,36,45,35,15,23,43,36,21,36,59,50,11,27,34,27,3,27,52,44,18,24,53,45,36,19,44,36,27,26,58,44,19,34,44,53,26,12,56,59,2,11,45,37,0,3,36,28,11,38,35,29,12,20,59,3,4,3,29,35,20,2,37,29,10,26,50,36,26,35,36,38,34,28,38,52,28,18,42,35,18,35,53,35,3,35,29,21,2,20,52,49,20,44,62,63,9,17,21,14,24,34,49,50,6,14,54,27,34,19,50,49,44,28,27,41,8,24,49,53,13,29,53,49,17,25,48,40,14,22,49,53 );
var names15 = new Array();
var base15 = -1;
var pieces = "KQNBR ";

var moves16 = new Array(62,45,6,21,50,34,14,22,57,42,5,14,52,36,11,19,51,35,4,6,71,5,61,52,12,28,60,62,127,61,1,18,35,27,18,12,45,51,8,24,49,41,10,26,48,40,21,4,56,57,13,29,41,33,24,33,40,33,9,17,59,41,4,21,52,43,14,23,57,49,0,56,41,50,23,37,51,45,29,36,42,36,21,36,43,36,56,58,61,58,37,58,50,58,12,29,58,30,29,35,30,3,35,45,36,45,5,3,33,26,17,26,49,1,3,5,1,17,5,21,17,1,21,5,1,17,5,21,45,36,2,29,36,29,21,29,54,46,29,21,55,39,15,23,62,54,6,14,53,45,14,6,54,53,22,30,39,30,23,30,53,44,6,14,17,1,14,15,1,3,15,14,3,0,14,13,44,36,13,14,0,8,14,22,8,12,30,38 );
var names16 = new Array();
var base16 = -1;
var pieces = "KQNBR ";

var moves17 = new Array(50,34,12,20,57,42,11,27,51,35,5,12,62,45,6,21,58,30,15,23,30,39,4,6,71,5,52,44,9,17,61,52,2,9,39,21,12,21,34,27,20,27,49,33,10,26,33,26,17,26,56,57,9,18,60,62,127,61,1,11,52,25,3,10,59,43,5,2,61,58,0,1,55,47,14,22,25,18,1,57,43,57,10,18,35,26,18,26,42,52,26,5,47,39,11,28,45,28,21,28,58,59,5,26,39,31,26,50,57,50,2,50,59,27,50,52,27,28,52,48,31,22,13,22,28,12,8,24,12,8,24,32,54,46,23,31,62,54,32,40,44,36,22,30,54,45,30,38,45,44,48,56,44,37,56,61,37,30,61,53,30,31,53,52 );
var names17 = new Array();
var base17 = -1;
var pieces = "KQNBR ";

var moves18 = new Array(62,45,11,27,51,35,6,21,50,34,12,20,57,42,5,12,58,30,4,6,71,5,52,44,15,23,30,39,9,17,61,52,2,9,39,21,12,21,34,27,20,27,60,62,127,61,1,11,49,33,10,26,33,26,17,26,59,41,26,35,45,35,21,35,44,35,11,17,48,32,0,1,32,24,17,34,52,34,27,34,41,34,3,19,34,26,19,26,35,26,1,2,24,16,9,0,42,25,2,26,25,8,0,36,53,45,5,0,45,36,0,8,56,32,26,18,61,56,6,5,62,53,5,12,53,44,12,20,32,24,18,19,56,48,19,18,55,39,18,19,44,37,19,17,48,40,17,18,24,28,20,21,28,29,21,20,29,24,18,17,24,28,20,21,28,24,21,20,40,56,17,18,24,28,20,21,28,29,21,20,29,28,20,21,28,24,21,20,56,48,18,17,54,38,13,21,39,31,17,18,48,49,18,16,49,17,16,17,24,8,17,57,8,14,57,61,37,44,61,60,44,45,60,61,45,52,61,37,52,44,20,28,14,12,28,19,12,15,19,28,15,12,28,19,12,20,19,20,44,37,20,12 );
var names18 = new Array();
var base18 = -1;
var pieces = "KQNBR ";

var moves19 = new Array(50,34,12,20,57,42,11,27,51,35,5,12,62,45,6,21,59,50,4,6,71,5,58,30,10,26,35,26,27,34,52,36,3,24,36,28,21,27,61,34,27,42,60,62,127,61,24,26,50,42,1,18,30,12,26,12,48,40,2,11,56,58,5,3,49,33,8,16,42,44,11,4,34,43,18,8,43,57,4,18,45,30,15,23,30,36,8,25,58,34,18,36,57,36,0,2,34,2,3,2,61,58,2,58,44,58,12,11,54,46,9,17,62,54,11,3,55,39,16,24,33,24,17,24,58,26,25,35,39,31,13,29,36,9,6,13,54,55,3,1,26,35,1,9,46,38,9,45,35,11,13,5 );
var names19 = new Array();
var base19 = -1;
var pieces = "KQNBR ";

var moves20 = new Array(51,35,6,21,50,34,14,22,57,42,11,27,62,45,5,14,59,41,27,34,41,34,4,6,71,5,52,36,1,16,61,52,10,26,35,27,12,20,60,62,127,61,20,27,36,27,2,29,61,59,5,4,27,19,15,23,58,37,21,11,59,51,16,33,34,41,29,20,52,34,11,17,34,20,4,20,48,40,33,43,37,46,26,34,41,50,0,2,56,59,3,11,55,39,13,29,51,43,34,43,50,43,17,34,43,27,34,17,27,43,17,34,43,27,34,17 );
var names20 = new Array();
var base20 = -1;
var pieces = "KQNBR ";

var moves21 = new Array(50,34,12,20,57,42,11,27,51,35,5,12,62,45,6,21,58,37,4,6,71,5,52,44,10,26,35,26,12,26,56,58,1,18,34,27,20,27,61,52,27,35,44,35,18,35,45,35,3,35,59,35,26,35,42,25,35,17,60,62,127,61,2,20,48,40,5,3,25,19,3,11,52,25,11,12,61,60 );
var names21 = new Array();
var base21 = -1;
var pieces = "KQNBR ";

var moves22 = new Array(50,34,10,26,62,45,6,21,57,42,11,27,34,27,21,27,51,35,27,42,49,42,14,22,52,44,5,14,61,43,4,6,71,5,60,62,127,61,3,10,56,57,9,17,59,52,5,3,43,36,2,16,42,34,1,18,35,27,13,29,36,43,12,28,44,36,18,35,45,35,26,35,58,30,3,5,61,58,0,2,30,51,5,13,48,32,29,36,52,36,2,5,53,45,16,2,32,24,2,29,36,52,5,4,43,36,14,5,52,43,5,26,57,56,10,11,58,60,11,2,62,63,13,10,56,57,6,14,60,58,29,36,45,36,10,13,43,46,17,24,51,24,13,37,58,60,2,16,24,51,37,13,46,43,4,5,55,47,13,53,57,56,16,21,60,62,15,31,56,24,21,12,62,57,31,39,24,16,5,13,16,18,12,5,57,62,26,12,18,20,14,15,51,60,53,61,60,51,12,26,20,18,13,45,54,45,61,45,18,10,15,7,51,23,45,43,23,5,43,47,63,54,47,46,54,55,46,62,5,26,35,43 );
var names22 = new Array();
var base22 = -1;
var pieces = "KQNBR ";

var moves23 = new Array(50,34,12,20,62,45,6,21,54,46,11,27,49,41,5,12,61,54,4,6,71,5,60,62,127,61,9,17,58,49,2,9,52,44,1,11,57,42,21,36,42,52,8,24,51,43,12,21,59,50,21,49,50,49,36,19,34,27,9,27,43,35,10,26,61,59,0,2,52,37,27,45,54,45,3,12,56,58,5,3,35,26,11,26,41,33,24,33,49,33,12,8,48,40,19,29,58,57,3,59,57,59,8,10,37,43,15,23,59,58,29,12,33,25,12,29,40,32,29,19,25,57,10,8,43,28,26,32,58,2,19,2,57,59,2,12,59,3,6,15,28,13,12,22,3,4,8,12,4,32,12,13,45,36,15,6,32,25,22,5,25,17,13,21,17,25,21,12,62,54,14,22,25,24,12,14,24,26,14,13,55,39,23,31,26,18,13,12,36,43,12,13,18,19,6,14,44,36,14,6,43,34,6,14,19,28,14,6,28,19,6,14,34,25,14,6,25,18,13,8,19,33,8,10,33,9,10,3,36,28,3,24,18,4,24,26,9,13,6,7,4,32,26,27,54,55,27,26,32,41,26,2,41,59,2,26,55,54 );
var names23 = new Array();
var base23 = -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);
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 "";
}
