
var m0 = new Array(1)

m0[2] = new Array(32,24,17,25);
m0[2].base = new Array(28,29,0);
m0[2].root =1;
m0[2].move =1;
m0[1] = new Array(18,26,34,27,20,27,54,27,26,35,42,35,11,1,52,36,16,61,51,61,1,18);
m0[1].base = new Array(26,27,30,31,32,33,34,35,36,37,38,0);
m0[1].root =0;
m0[1].move =27;
m0[4] = new Array(34,26,25,33);
m0[4].base = new Array(43,44,0);
m0[4].root =3;
m0[4].move =2;
m0[3] = new Array(32,24,17,25,34,27,18,27,56,58,2,42,58,42,21,35,42,18,16,9,18,58,3,24);
m0[3].base = new Array(40,41,42,45,46,47,48,49,50,51,52,53,0);
m0[3].root =0;
m0[3].move =28;
m0[6] = new Array(26,35,28,21,35,42,21,14,6,14,59,38,14,7,38,35,3,21);
m0[6].base = new Array(58,59,60,61,62,63,64,65,66,0);
m0[6].root =5;
m0[6].move =1;
m0[5] = new Array(36,28,26,35);
m0[5].base = new Array(56,57,0);
m0[5].root =0;
m0[5].move =30;
m0[7] = new Array(42,49);
m0[7].base = new Array(69,0);
m0[7].root =0;
m0[7].move =32;
m0[8] = new Array(11,26);
m0[8].base = new Array(71,0);
m0[8].root =0;
m0[8].move =33;
m0[10] = new Array(61,60);
m0[10].base = new Array(76,0);
m0[10].root =9;
m0[10].move =3;
m0[9] = new Array(21,12,33,12,3,12,27,20,13,20,59,50,2,4,56,60,20,28,54,18,16,2,55,39,6,7,51,36,4,3,36,30,11,21,18,54,15,23,30,36,2,29,50,43,5,4,60,52,29,38,52,51,21,11,43,57,8,24,61,60,4,5,62,55,38,29,57,49,12,33,54,47,29,47,55,47,5,45,60,57,11,26,36,26,17,26,51,52,3,5,49,51,33,17,47,54,17,21,51,24);
m0[9].base = new Array(72,73,74,75,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,0);
m0[9].root =0;
m0[9].move =33;
m0[13] = new Array(20,4,51,36);
m0[13].base = new Array(129,130,0);
m0[13].root =12;
m0[13].move =1;
m0[14] = new Array(51,36,28,27,34,27,16,61,59,61);
m0[14].base = new Array(132,133,134,135,136,0);
m0[14].root =12;
m0[14].move =2;
m0[16] = new Array(28,60,59,60,11,26,51,36,21,12);
m0[16].base = new Array(139,140,141,142,143,0);
m0[16].root =15;
m0[16].move =1;
m0[17] = new Array(33,12,3,12,53,37,12,26);
m0[17].base = new Array(147,148,149,150,0);
m0[17].root =15;
m0[17].move =4;
m0[18] = new Array(43,33,36,21,3,21,19,11);
m0[18].base = new Array(154,155,156,157,0);
m0[18].root =15;
m0[18].move =7;
m0[15] = new Array(61,60,28,27,34,27,11,28,51,36,28,43,27,19,43,60,59,60);
m0[15].base = new Array(137,138,144,145,146,151,152,153,158,0);
m0[15].root =12;
m0[15].move =2;
m0[19] = new Array(60,28,21,28,56,60,28,19,51,36,19,5,55,39,15,23);
m0[19].base = new Array(165,166,167,168,169,170,171,172,0);
m0[19].root =12;
m0[19].move =8;
m0[12] = new Array(54,27,20,28,59,45,11,26,33,26,17,26,61,60,2,10,51,36,16,2);
m0[12].base = new Array(127,128,131,159,160,161,162,163,164,173,0);
m0[12].root =11;
m0[12].move =2;
m0[11] = new Array(27,20,4,20,51,36,11,26,36,21,20,21,61,60);
m0[11].base = new Array(124,125,126,174,175,176,177,0);
m0[11].root =0;
m0[11].move =34;
m0[21] = new Array(20,27,60,4,3,4,54,27,11,26,59,45);
m0[21].base = new Array(180,181,182,183,184,185,0);
m0[21].root =20;
m0[21].move =1;
m0[23] = new Array(36,51,9,54,62,54,4,5);
m0[23].base = new Array(200,201,202,203,0);
m0[23].root =22;
m0[23].move =12;
m0[24] = new Array(37,28,4,28);
m0[24].base = new Array(206,207,0);
m0[24].root =22;
m0[24].move =14;
m0[22] = new Array(33,26,17,26,27,20,13,20,51,36,3,12,59,43,2,1,56,48,16,9,48,52,20,28,53,37,12,10,37,29,10,17);
m0[22].base = new Array(187,188,189,190,191,192,193,194,195,196,197,198,199,204,205,208,0);
m0[22].root =20;
m0[22].move =2;
m0[20] = new Array(61,60,11,26,27,20);
m0[20].base = new Array(178,179,186,0);
m0[20].root =0;
m0[20].move =34;
m0[25] = new Array(41,34,21,12);
m0[25].base = new Array(213,214,0);
m0[25].root =0;
m0[25].move =38;
m0[27] = new Array(41,34,11,28,32,24,16,34,61,60,4,11,24,17,8,17);
m0[27].base = new Array(218,219,220,221,222,223,224,225,0);
m0[27].root =26;
m0[27].move =2;
m0[26] = new Array(19,4,3,4,61,60,4,3,41,34,16,34);
m0[26].base = new Array(215,216,217,226,227,228,0);
m0[26].root =0;
m0[26].move =38;
m0[30] = new Array(6,7,13,4);
m0[30].base = new Array(236,237,0);
m0[30].root =29;
m0[30].move =4;
m0[29] = new Array(11,28,53,37,28,43,27,13,6,5,59,31,43,33,13,4);
m0[29].base = new Array(231,232,233,234,235,238,239,240,0);
m0[29].root =28;
m0[29].move =1;
m0[28] = new Array(54,27,11,26,27,13,6,5,13,4,3,19,4,25,16,25,32,25,35,43,59,45);
m0[28].base = new Array(229,230,241,242,243,244,245,246,247,248,249,0);
m0[28].root =0;
m0[28].move =38;
m0[33] = new Array(56,61,30,22);
m0[33].base = new Array(270,271,0);
m0[33].root =32;
m0[33].move =10;
m0[32] = new Array(38,30,3,30,37,30,34,42,27,13,22,30,13,4,2,4,61,13,16,2,13,14,30,21,14,15,8,24,56,61,21,22,61,13,4,6,33,42,35,42,13,11,42,50,11,10,178,58,10,58,22,15);
m0[32].base = new Array(259,260,261,262,263,264,265,266,267,268,269,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,0);
m0[32].root =31;
m0[32].move =2;
m0[31] = new Array(53,37,15,31,27,13,22,13,37,30,13,6,38,31,11,28,30,22,28,22,31,22,3,11,41,34,16,34,61,37,2,18);
m0[31].base = new Array(256,257,258,287,288,289,290,291,292,293,294,295,296,297,298,299,0);
m0[31].root =0;
m0[31].move =44;
m0[34] = new Array(55,39,11,26,53,37,15,31);
m0[34].base = new Array(300,301,302,303,0);
m0[34].root =0;
m0[34].move =44;
m0[35] = new Array(22,13,36,27,13,22,27,36);
m0[35].base = new Array(307,308,309,310,0);
m0[35].root =0;
m0[35].move =47;
m0[37] = new Array(36,12,14,22,25,16,35,43);
m0[37].base = new Array(331,332,333,334,0);
m0[37].root =36;
m0[37].move =14;
m0[36] = new Array(41,33,34,42,39,30,21,30,36,39,23,22,39,36,22,14,51,30,3,30,33,25,42,50,56,58,11,21,36,52,30,27,58,50,16,9,53,45,2,50,52,50,27,28,50,53,21,27);
m0[36].base = new Array(316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,335,336,337,338,339,340,341,342,343,0);
m0[36].root =0;
m0[36].move =52;
m0[39] = new Array(16,34,60,12);
m0[39].base = new Array(352,353,0);
m0[39].root =38;
m0[39].move =7;
m0[38] = new Array(41,34,11,26,36,29,23,14,39,30,21,12,61,60,12,5,32,24,2,10);
m0[38].base = new Array(344,345,346,347,348,349,350,351,354,355,0);
m0[38].root =0;
m0[38].move =52;
m0[42] = new Array(36,28,11,28,35,3,28,43,3,43,16,43,60,12,14,22,12,8,22,29,8,15,29,37,15,14,41,49);
m0[42].base = new Array(372,373,374,375,376,377,378,379,380,381,382,383,384,385,0);
m0[42].root =41;
m0[42].move =4;
m0[44] = new Array(35,11,28,42);
m0[44].base = new Array(391,392,0);
m0[44].root =43;
m0[44].move =2;
m0[43] = new Array(53,60,3,12,59,51,49,57,60,53,28,35,36,35,14,22,35,19,12,19,51,19,22,29,19,11,29,37,11,8,57,49,53,60,16,43);
m0[43].base = new Array(388,389,390,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,0);
m0[43].root =41;
m0[43].move =6;
m0[45] = new Array(35,49,3,12,49,35,11,26);
m0[45].base = new Array(412,413,414,415,0);
m0[45].root =41;
m0[45].move =10;
m0[46] = new Array(59,60,49,52,60,52,16,52,29,15,3,12);
m0[46].base = new Array(420,421,422,423,424,425,0);
m0[46].root =41;
m0[46].move =14;
m0[41] = new Array(51,35,42,46,62,53,46,41,60,59,41,49,53,62,28,35,36,35,14,6,35,27,6,5,27,29,5,4,29,15,3,12,15,31,4,3,31,7,3,10,7,49,12,44,49,53,44,47);
m0[41].base = new Array(367,368,369,370,371,386,387,408,409,410,411,416,417,418,419,426,427,428,429,430,431,432,433,434,0);
m0[41].root =40;
m0[41].move =10;
m0[40] = new Array(61,60,23,14,39,30,21,28,53,37,34,42,56,48,42,51,48,51,2,42,37,28,3,30,36,35,42,46,62,55,16,2,28,20,11,21,51,53,46,38,35,21,30,21,53,21,14,21,20,12,2,11,140,4,11,4,60,4,15,31);
m0[40].base = new Array(356,357,358,359,360,361,362,363,364,365,366,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,0);
m0[40].root =0;
m0[40].move =52;
m0[49] = new Array(20,47,34,42,47,39,21,31);
m0[49].base = new Array(462,463,464,465,0);
m0[49].root =48;
m0[49].move =2;
m0[48] = new Array(53,37,30,39,46,39,3,6);
m0[48].base = new Array(459,460,461,466,0);
m0[48].root =47;
m0[48].move =2;
m0[52] = new Array(23,14,41,34);
m0[52].base = new Array(474,475,0);
m0[52].root =51;
m0[52].move =1;
m0[54] = new Array(46,61,56,61);
m0[54].base = new Array(483,484,0);
m0[54].root =53;
m0[54].move =2;
m0[56] = new Array(52,37,61,37);
m0[56].base = new Array(490,491,0);
m0[56].root =55;
m0[56].move =2;
m0[55] = new Array(34,42,51,37,3,5,21,13,52,37,61,37);
m0[55].base = new Array(487,488,489,492,493,494,0);
m0[55].root =53;
m0[55].move =4;
m0[57] = new Array(3,5,21,13);
m0[57].base = new Array(497,498,0);
m0[57].root =53;
m0[57].move =6;
m0[53] = new Array(14,7,47,39,46,52,62,55,34,41,39,23,3,10,51,37,10,13);
m0[53].base = new Array(480,481,482,485,486,495,496,499,500,0);
m0[53].root =51;
m0[53].move =5;
m0[51] = new Array(46,38,31,46,37,29,23,14,29,21,39,21,47,23,14,7,61,21);
m0[51].base = new Array(472,473,476,477,478,479,501,502,503,0);
m0[51].root =50;
m0[51].move =3;
m0[59] = new Array(35,44);
m0[59].base = new Array(519,0);
m0[59].root =58;
m0[59].move =5;
m0[58] = new Array(61,44,47,11,14,7,11,35,6,14,35,14,7,14,60,44,2,34,44,12,14,22,12,8,34,32,30,3);
m0[58].base = new Array(513,514,515,516,517,518,520,521,522,523,524,525,526,527,0);
m0[58].root =50;
m0[58].move =12;
m0[50] = new Array(21,31,53,37,30,39,41,34,31,46,51,60,46,61,60,39,3,6,39,30,23,14,56,60,2,10,47,23,14,7,62,61,6,34,61,62,34,13);
m0[50].base = new Array(468,469,470,471,504,505,506,507,508,509,510,511,512,528,529,530,531,532,533,0);
m0[50].root =47;
m0[50].move =3;
m0[61] = new Array(42,50,61,60,3,19,62,61,19,18,61,62,2,4,60,4,13,4,30,58,35,43,58,40,4,11);
m0[61].base = new Array(545,546,547,548,549,550,551,552,553,554,555,556,557,0);
m0[61].root =60;
m0[61].move =5;
m0[60] = new Array(47,23,34,42,51,30,16,61,56,61,35,43,30,21,3,21,23,15,13,5,15,11,2,3,11,10,43,51,61,59,3,4);
m0[60].base = new Array(539,540,541,542,543,544,558,559,560,561,562,563,564,565,566,567,0);
m0[60].root =47;
m0[60].move =8;
m0[62] = new Array(61,60,35,43,23,30,43,51,30,21,179,60,56,60,3,21,47,15,13,5);
m0[62].base = new Array(570,571,572,573,574,575,576,577,578,579,0);
m0[62].root =47;
m0[62].move =10;
m0[47] = new Array(36,20,11,21,20,47,23,22,53,37,30,23,37,29,22,13,51,23,34,42,23,30,16,61,56,61,42,50,47,23,35,43);
m0[47].base = new Array(456,457,458,467,534,535,536,537,538,568,569,580,581,582,583,584,0);
m0[47].root =0;
m0[47].move =54;
m0[63] = new Array(36,35,11,28,61,60,2,26,41,33,30,21,62,54,21,45,54,61,26,27,35,36,45,13);
m0[63].base = new Array(591,592,593,594,595,596,597,598,599,600,601,602,0);
m0[63].root =0;
m0[63].move =60;
m0[64] = new Array(60,12,14,22);
m0[64].base = new Array(607,608,0);
m0[64].root =0;
m0[64].move =64;
m0[67] = new Array(8,48,2,58,48,49,58,60,62,54);
m0[67].base = new Array(621,622,623,624,625,0);
m0[67].root =66;
m0[67].move =1;
m0[68] = new Array(2,58,11,3,5,13,3,11,13,22,11,19,27,21,19,59);
m0[68].base = new Array(627,628,629,630,631,632,633,634,0);
m0[68].root =66;
m0[68].move =2;
m0[70] = new Array(44,43,34,42,43,51,42,46);
m0[70].base = new Array(653,654,655,656,0);
m0[70].root =69;
m0[70].move =16;
m0[71] = new Array(38,30,34,37);
m0[71].base = new Array(663,664,0);
m0[71].root =69;
m0[71].move =22;
m0[69] = new Array(11,9,2,18,62,54,177,57,60,57,42,57,9,15,17,25,15,9,57,42,53,37,18,34,54,45,25,33,45,44,42,48,46,38,48,42,44,45,42,27,37,29,5,4,9,25,34,35,45,46,27,21,38,30,21,36,46,45,36,30);
m0[69].base = new Array(636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,657,658,659,660,661,662,665,666,667,668,669,670,671,0);
m0[69].root =66;
m0[69].move =3;
m0[66] = new Array(14,5,8,11,27,42,11,51,177,57,60,57,42,57,51,49,57,42,49,17);
m0[66].base = new Array(619,620,626,635,672,673,674,675,676,677,0);
m0[66].root =65;
m0[66].move =4;
m0[72] = new Array(27,42,11,51,177,57,60,57,42,57,51,49,57,42,49,17);
m0[72].base = new Array(680,681,682,683,684,685,686,687,0);
m0[72].root =65;
m0[72].move =6;
m0[74] = new Array(13,22,11,19,27,21,19,59);
m0[74].base = new Array(693,694,695,696,0);
m0[74].root =73;
m0[74].move =2;
m0[73] = new Array(22,13,19,11,13,5,11,3,5,13,3,11,13,21,11,19,21,14,19,11,14,22);
m0[73].base = new Array(690,691,692,697,698,699,700,701,702,703,704,0);
m0[73].root =65;
m0[73].move =8;
m0[76] = new Array(27,25);
m0[76].base = new Array(715,0);
m0[76].root =75;
m0[76].move =7;
m0[75] = new Array(58,50,62,54,21,38,59,19,22,29,19,27,29,22,27,19,22,30,19,27);
m0[75].base = new Array(707,708,709,710,711,712,713,714,716,717,0);
m0[75].root =65;
m0[75].move =10;
m0[79] = new Array(58,57,9,18,25,41,15,31,41,33,22,21);
m0[79].base = new Array(733,734,735,736,737,738,0);
m0[79].root =78;
m0[79].move =1;
m0[78] = new Array(21,11,58,59,9,18,59,57,15,31,57,41);
m0[78].base = new Array(731,732,739,740,741,742,0);
m0[78].root =77;
m0[78].move =10;
m0[77] = new Array(57,33,58,57,33,26,60,58,26,19,58,59,19,18,59,58,18,9,57,25,22,13,58,57,21,11,57,59,13,12,59,60,12,19,60,59,19,18,59,57,9,16,25,33,16,52,57,49,52,43,62,54,43,27,54,62,17,25,33,25,27,25,49,25,18,25,62,54,25,34,54,45,34,27,45,38,27,20,38,30,20,13,30,23,13,6,46,38,11,28,23,30,6,14,53,37);
m0[77].base = new Array(720,721,722,723,724,725,726,727,728,729,730,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,0);
m0[77].root =65;
m0[77].move =12;
m0[80] = new Array(22,31,18,17);
m0[80].base = new Array(782,783,0);
m0[80].root =65;
m0[80].move =14;
m0[81] = new Array(22,13,20,21,29,21,18,21,13,21,62,61);
m0[81].base = new Array(786,787,788,789,790,791,0);
m0[81].root =65;
m0[81].move =16;
m0[65] = new Array(8,17,56,16,41,49,16,8,14,22,8,11,2,58,11,19,27,21,19,59,177,57,59,58,57,29,58,18,17,25,60,20,25,33,18,17,22,13,20,21,29,21,17,33);
m0[65].base = new Array(614,615,616,617,618,678,679,688,689,705,706,718,719,780,781,784,785,792,793,794,795,796,0);
m0[65].root =0;
m0[65].move =69;
m0[0] = new Array(51,35,6,21,50,34,12,20,62,45,9,17,54,46,2,16,49,41,5,33,58,51,33,12,61,54,10,18,51,42,11,27,45,28,21,11,28,11,1,11,57,51,4,6,71,5,60,62,127,61,0,2,48,32,12,21,52,36,18,26,36,27,26,35,42,33,5,4,51,36,20,27,36,19,27,34,19,13,6,13,54,27,13,22,59,38,21,30,27,36,4,36,38,36,22,23,55,39,30,21,33,51,14,30,39,30,21,30,36,39,23,22,39,36,22,14,51,30,3,30,61,60,34,41,36,35,11,21,32,24,30,27,35,27,21,27,24,17,8,17);
m0[0].base = new Array(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,21,22,22,23,24,25,39,54,55,67,68,70,123,209,210,211,212,250,251,252,253,254,255,304,305,306,311,312,313,314,315,454,455,585,586,587,588,589,590,603,604,605,606,609,610,611,612,613,0);
m0[0].root =0;
m0[0].move =0;
var n0 = new Array();
var b0 = -1;
var pieces = "KQNBR ";
function g0(a,b)
{	gm(m0,n0,0,b0,'deep_fritz_kramnikg5g0.htm',a,b);}
function MB50()
{b0=MB5(m0,n0,0,b0,'deep_fritz_kramnikg5g0.htm'); GMS(m0,n0,0,b0,'deep_fritz_kramnikg5g0.htm');}
function MB0()
{b0=MB(m0,n0,0,b0,'deep_fritz_kramnikg5g0.htm'); GMS(m0,n0,0,b0,'deep_fritz_kramnikg5g0.htm');}
function MF50()
{b0=MF5(m0,n0,0,b0,'deep_fritz_kramnikg5g0.htm'); GMS(m0,n0,0,b0,'deep_fritz_kramnikg5g0.htm');}
function MF0()
{b0=MF(m0,n0,0,b0,'deep_fritz_kramnikg5g0.htm',true); ideep_fritz_kramnikg50.value=GMS(m0,n0,0,b0,'deep_fritz_kramnikg5g0.htm');}
var nMoves = new Array(0,0);
var nLevels = new Array(0,0);
var nNameCount = new Array(0,0);
var nOld = new Array(-1,-1);
baseName = 'deep_fritz_kramnikg5';
var EmptyWhitePath = "gif/w.gif";
var EmptyBlackPath = "gif/b.gif";
// Copyright 98,99 by ChessBase GmbH, Germany
function Init( path )
{ gifs = new Array(6);
	for ( var i=0; i< 26; i++)
		gifs[i]= new Image();
	gifs[0].src = path + "b.gif";
	gifs[1].src = path + "bbb.gif";
	gifs[2].src = path + "bbw.gif";
	gifs[3].src = path + "bkb.gif";
	gifs[4].src = path + "bkw.gif";
	gifs[5].src = path + "bqb.gif";
	gifs[6].src = path + "bqw.gif";
	gifs[7].src = path + "brb.gif";
	gifs[8].src = path + "brw.gif";
	gifs[9].src = path + "bnb.gif";
	gifs[10].src = path + "bnw.gif";
	gifs[11].src = path + "wbb.gif";
	gifs[12].src = path + "wbw.gif";
	gifs[13].src = path + "wrb.gif";
	gifs[14].src = path + "wrw.gif";
	gifs[15].src = path + "wqb.gif";
	gifs[16].src = path + "wqw.gif";
	gifs[17].src = path + "wkb.gif";
	gifs[18].src = path + "wkw.gif";
	gifs[19].src = path + "wnb.gif";
	gifs[20].src = path + "wnw.gif";
	gifs[21].src = path + "wpb.gif";
	gifs[22].src = path + "wpw.gif";
	gifs[23].src = path + "bpb.gif";
	gifs[24].src = path + "wpb.gif";
	gifs[25].src = path + "b.gif";
}
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 if ( document.images[i].name.substring(0,3) == basename.substring(0,3) )
				i+= 63;
	}
	return -1;
}
function MF5( moves, names, nm, base, basename )
{	base = SyncPicture( base, basename );
	for ( i=0; nMoves[nm] < moves[nLevels[nm]].length / 2 && i < 10; i++ )
		MF( moves, names, nm, base, false );
	return base;
}
function MB5( moves, names, nm, base, basename )
{	base = SyncPicture( base, basename );
	for ( i=0; ( nMoves[nm] > 0 || nLevels[nm] > 0 ) && i < 10; i++ )
		MB( moves, names, nm, base );
	return base;
}
function GoStart( moves, names, nm, base, basename )
{	base = SyncPicture( base, basename );
	while ( nMoves[nm] > 0 || nLevels[nm] > 0 )
		MB( moves, names, nm, base );
	return base;
}
function GoEnd( moves, names, nm, base, basename )
{	base = SyncPicture( base, basename );
	while ( nMoves[nm] < moves[nLevels[nm]].length / 2 )
		MF( moves, names, nm, base, false );
	return base;
}
function MF( moves, names, nm, base, basename, bCheckV )
{	base = SyncPicture( base, basename );
	if ( bCheckV )
	{	var b = false;
		for ( i=0; i < moves.length; i++ )
			if ( i != nLevels[nm] && moves[i].root == nLevels[nm] && moves[i].move == nMoves[nm] )
				b = true;
		if ( b )
		{	var vf = window.open('', 'Frank', 'status=no,scrollbars=no,menubar=no,toolbar=no,width=240,height=160')
			with ( vf.document )
			{	open();
				write('<HTML><HEAD><TITLE>Varianten</TITLE></HEAD><BODY><DIV ID="disp"></DIV><LAYER id="NS"></LAYER></BODY></HTML>')
				close()
			}
			vf.erzeuger = self;
			var ihtml="<a href=\"javascript:erzeuger.MF(erzeuger.m" + nm +
						 ",erzeuger.n" + nm + "," + nm + ",erzeuger.b" + nm + ",'" + basename + "',false);";
			ihtml = ihtml + "erzeuger.GMS(erzeuger.m" + nm +
						",erzeuger.n" + nm + "," + nm + ",erzeuger.b" + nm + ",'" + basename + "');";
			ihtml = ihtml + "self.close()\">";
			ihtml = ihtml + "Hauptvariante - Main line" + "<\a>";
			ihtml = ihtml + "<BR>";
			var nCurrentLevel=nLevels[nm];
			var nMoveNum=nMoves[nm];
			for ( j=0; j < moves.length; j++ )
			{	if ( j != nCurrentLevel && moves[j].root == nCurrentLevel && moves[j].move == nMoveNum )
				{	gm( moves,names,nm,base,basename,1,j);
					var moveStr = GMS2( moves, names, nm, base, 1, j, basename );
					ihtml = ihtml + "<a href=\"javascript:erzeuger.gm(erzeuger.m" + nm +
						",erzeuger.n" + nm + "," + nm + ",erzeuger.b" + nm + ",'" + basename + "',";
					ihtml = ihtml + "1," + j + ");self.close()\">";
					ihtml = ihtml + moveStr + "<\a>";
					ihtml = ihtml + "<BR>";
					gm( moves,names,nm,base,basename,nMoveNum,nCurrentLevel);
				}
			}
			if ( document.all )
				vf.document.all.disp.innerHTML=ihtml
			else if ( document.layers )
			{	vf.document.layers[0].document.clear();
				vf.document.layers[0].document.write(ihtml);
				vf.document.layers[0].document.close();
			}
			return base;
		}
	}
	if ( nMoves[nm] < moves[nLevels[nm]].length / 2 )
	{	var n = nMoves[nm]*2;
		var from = moves[nLevels[nm]][ n ] & 0x3f;
		var to = moves[nLevels[nm]][ n+1 ] & 0x3f;
		names[ nNameCount[nm]   ] = document.images[ base + from ].src;
		names[ nNameCount[nm]+1 ] = document.images[ base + to ].src;
		var len = names[nNameCount[nm]].length;
		var nn = (Math.floor(( to / 8 )) + ( to % 8 ));
		var dest = ( nn % 2 ) == 1 ? "b" : "w";
		var piece = names[nNameCount[nm]].substring(len-6,len-5);
		if (( moves[nLevels[nm]][ n ] & 0x380 ) == 0x80 )
			piece = "q";
		else if (( moves[nLevels[nm]][ n ] & 0x380 ) == 0x100 )
			piece = "n";
		else if (( moves[nLevels[nm]][ n ] & 0x380 ) == 0x180 )
			piece = "b";
		else if (( moves[nLevels[nm]][ n ] & 0x380 ) == 0x200 )
			piece = "r";
		document.images[ base + to ].src = names[nNameCount[nm]].substring(0,len-6) + piece + dest + names[nNameCount[nm]].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]++;
		nNameCount[nm] = nNameCount[nm] + 2;
		if ( nMoves[nm] < moves[nLevels[nm]].length / 2 && ( moves[nLevels[nm]][ nMoves[nm]*2 ] & 0x40 ) == 0x40 )
			MF( moves, names, nm, base, bCheckV );
	}
	return base
}
function MB( moves, names, nm, base, basename )
{	base = SyncPicture( base, basename );
	if ( nMoves[nm] > 0 )
	{	nMoves[nm]--;
		nNameCount[nm] -= 2;
		var from = moves[nLevels[nm]][ nMoves[nm]*2 ] & 0x3f;
		var to = moves[nLevels[nm]][ nMoves[nm]*2+1 ] & 0x3f;
		document.images[ base + from ].src = names[ nNameCount[nm] ];
		document.images[ base + to ].src = names[ nNameCount[nm]+1 ];
		if (( moves[nLevels[nm]][ nMoves[nm]*2 ] & 0x40 ) == 0x40 )
			MB( moves, names, nm, base );
	}
	if ( nMoves[nm] == 0 )
		if ( nLevels[nm] > 0 )
		{	nMoves[nm] = moves[nLevels[nm]].move;
			nLevels[nm] = moves[nLevels[nm]].root;
			if (( moves[nLevels[nm]][nMoves[nm]*2] & 0x40 ) == 0x40 )
				nMoves[nm]--;
		}
	return base;
}
function GMS2(  moves, names, nm, base, nMoveNumber, nLevel, basename )
{	if ( nMoveNumber > 0 )
	{	var n = (nMoveNumber-1)*2;
		var off=1;
		for ( i=0; i <= n; i += 2 )
			if (( moves[nLevel][i] & 0x40 ) == 0x40 )
				off = off+1;
		var from = moves[nLevel][ n ] & 0x3f;
		var to = moves[nLevel][ 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[nLevel][ n ] & 0x380 ) == 0x80 )
			piece2 = pieces.substring(1,2);
		else if (( moves[nLevel][ n ] & 0x380 ) == 0x100 )
			piece2 = pieces.substring(2,3);
		else if (( moves[nLevel][ n ] & 0x380 ) == 0x180 )
			piece2 = pieces.substring(3,4);
		else if (( moves[nLevel][ 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 moveNumber = gmn( moves, nLevel ) + nMoveNumber-off;
		var result = (Math.floor((moveNumber)/2)+1).toString() + ". ";
		if ( document.images[ base + to ].src.substring(len-7,len-6) == "b" )
			result = result + "... ";
		if ( n >= 2 && (( moves[nLevel][n] & 0x40 ) == 0x40 ))
		{	if (( moves[nLevel][n-1] == 62 ) || ( moves[nLevel][n-1] == 6 ))
				result = result + "0-0"
			else if (( moves[nLevel][n-1] == 2 + 7 * 8 ) || ( moves[nLevel][n-1] == 2 + 0 * 8 ))
				result = result + "0-0-0"
			else
			{	var sep = "x";
				from = moves[nLevel][ n-2 ] & 0x3f;
				to = moves[nLevel][ 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[ nNameCount[nm]-1 ].length;
			var substr = names[ nNameCount[nm]-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;
		}
	}
	else
		result='';
	if (document.all)
	{	name = 'i' + baseName + nm;
		if ( result == '' )
			document.all.tags( "DIV" )[name].innerHTML = "Startposition";
		else
			document.all.tags( "DIV" )[name].innerHTML = "Position after " + result;
	}
	else if ( document.layers )
	{	document.layers[nm].document.layers[0].document.clear();
		var gesamt = "<center>Position after " + result + "</center>";
		document.layers[nm].document.layers[0].document.write(gesamt);
		document.layers[nm].document.layers[0].document.close();
	}
	return result;
}
function GMS( moves, names, nm, base, basename )
{	base = SyncPicture( base, basename );
	var nLevel = nLevels[nm];
	var nMoveNumber = nMoves[nm];
	if ( nMoveNumber >= 0 && nMoveNumber <= moves[nLevel].length / 2 )
	{	if ( document.all )
		{	if ( nOld[nm] != -1 )
				document.anchors[nOld[nm]].style.background="#FFF8B3";
			if ( nMoveNumber > 0 )
			{	nOld[nm] = moves[nLevel].base[nMoveNumber-1];
				document.anchors[nOld[nm]].style.background="gray";
			}
			else
				nOld[nm] = -1;
		}
		return GMS2( moves, names, nm, base, nMoveNumber, nLevel, basename );
	}
	else
		return "??";
}
function gm( moves, names, nm, base, basename, n, m )
{	base = SyncPicture( base, basename );
	GoStart(moves,names,nm,base,basename );
	gm_sub( moves,names,nm,base,basename,n,m);
	GMS( moves, names, nm, base, basename );
}
function gmn( moves, m )
{	if ( m > 0 )
	{	var off=0;
		var n2 = moves[m].move;
		var m2 = moves[m].root;
		for ( i=0; i <= n2*2; i += 2 )
			if (( moves[m2][i] & 0x40 ) == 0x40 )
				off = off+1;
		return gmn( moves, m2 ) + ( n2 - off );
	}
	return 0;
}
function gm_sub( moves, names, nm, base, basename, n, m )
{	if ( m > 0 )
	{	var off=0;
		var n2 = moves[m].move;
		var m2 = moves[m].root;
		for ( i=0; i <= n2*2; i += 2 )
			if (( moves[m2][i] & 0x40 ) == 0x40 )
				off = off+1;
		gm_sub( moves,names,nm,base, basename, n2-off, m2  );
	}
	nLevels[nm]=m;
	nMoves[nm]=0;
	for ( i=0; i < n; i++ )
		MF(moves,names,nm,base,basename, false);
}
