var chess_diagram_unique_num=1;var chess_set=[];var b_board_force_flip;function insert_chess_diagram(fen){render_chess_diagram(fen);}function render_chess_diagram(fen,force_size){var id='chdiag_'+(chess_diagram_unique_num++)+'_'+Math.round(100000*Math.random());document.write('<div id="'+id+'"></div>');var div=gk_get_el(id);if(!div)return;draw_chess_diagram(div,fen,force_size);}function redraw_all_chess_diagrams(b_reset_graphics){if(b_reset_graphics){chess_set=[];init_gfx();}var all=document.getElementsByTagName('div');for(var i=0;i<all.length;i++){var div=all[i];if(!div||(typeof div._chess_diagram_fen)!='string')continue;draw_chess_diagram(div,String(div._chess_diagram_fen),div._chess_diagram_force_size);}}function init_gfx(force_size){var style=gk_get_glop(14,0);var size=gk_get_glop(15,3);var color=gk_get_glop(16,0)-1;if(style==0)style=gk_get_glop(9,0)+1;if(color<0)color=gk_get_glop(17,0);if(force_size)size=force_size;if(size<2)size=2;if(size>8)size=8;if(style<1)style=1;if(style>10)style=10;var all_colors=['888899','FFFFFF','009900',0,0,'696992','d2d2df','595969',0,0,'476bb2','c8d3e8','4b5976',0,0,'669999','d2e1e1','5e7373',0,0,'6ea155','d4e3cc','5b6f51',0,0,'6e886e','d4dcd4','5b655b',0,0,'be6c6c','ecd3d3','826161',0,0,'956c95','e0d3e0','716171',0,0,'664c7f','d2cad9','50465a',0,0,'b2997f','e8e1d9','83796f',0,0,'715746','d5cdc8','50463f',0,0,'c86c2f','efd3c1','7f5a41',0,0,'9F6E5B','FBD19E','805849',1,0,'8A5451','EFC88E','94504B',2,0,'88664F','F9CD9A','8F6447',3,0,'97664E','E0B597','7D5541',4,0,'76837A','E8ECE7','55615A',5,1,'73778D','D9D1D3','4F5469',6,1,'BC936E','DECFBA','99785A',7,1,'827C74','DCD7CF','69645C',8,1,'8C7C6F','C2BAB4','73665B',9,1,'888899','FFFFFF','009000'];color*=5;if(color<0)color=0;if(color>(all_colors.length-5))color=all_colors.length-5;return{'url':'/img/chess'+style+size+'.png','size':size*10,'color_bsq':'#'+all_colors[color],'color_wsq':'#'+all_colors[color+1],'color_border':'#'+all_colors[color+2],'color_bg_img':all_colors[color+3],'color_bg_tile':all_colors[color+4]};}function get_chess_set(size){if(!size)size=0;if(!chess_set[size]){chess_set[size]=init_gfx(size);var cs=chess_set[size];cs.img=new Image(cs.size*3,cs.size*6);fix_alpha(cs.img,'http://'+static_domain()+cs.url);var ts=cs.img.style;ts.position='absolute';ts.border='0px';ts.padding='0px';}return chess_set[size];}function draw_chess_diagram(div,fen,force_size){if(!div)return;div._chess_diagram_fen=fen;div._chess_diagram_force_size=force_size;var gfx=get_chess_set(force_size);var game=[];var plyr=decode_fen(fen,game);var b_flip=(plyr=='w')?0:1;if((typeof b_board_force_flip)!='undefined')b_flip=b_board_force_flip;var board_size=gfx.size*8;var frame_size=board_size+20;div.style.width=frame_size+'px';div.style.height=frame_size+'px';div.style.margin='4px';div.style.cursor='pointer';if(!force_size){div.onmouseover=function(evt){pb_show(evt,'Click for options&hellip;');};div.onclick=function(evt){if(!evt)var evt=window.event;var el=div;load_js('/js/settings.js?051009');setTimeout(function(){open_mini_chess_diagram_form(el,1);},100);};}var all_txt=[];all_txt.push('<table border=0 cellspacing=0 cellpadding=0 class=boarddiagram><tr valign=top><td>');all_txt.push('<div style="padding: 2px;"><table cellspacing=0 cellpadding=0 border=0 class=boardlabel>');var lbl=[1,2,3,4,5,6,7,8];for(var i=0;i<lbl.length;i++)all_txt.push('<tr height='+gfx.size+'><td>'+lbl[b_flip?i:lbl.length-i-1]+'</td></tr>');all_txt.push('</table></div></td><td><div style="width: '+board_size+'px; height: '+board_size+'px; border: 2px solid #000;"><div id="board"></div></div></td></tr><tr><td></td><td>');all_txt.push('<div style="padding: 0px 2px;"><table cellspacing=0 cellpadding=0 border=0 class=boardlabel><tr>');lbl=['a','b','c','d','e','f','g','h'];for(var i=0;i<lbl.length;i++)all_txt.push('<td width='+gfx.size+'>'+lbl[b_flip?lbl.length-i-1:i]+'</td>');all_txt.push('</tr></table></div></td></tr></table>');div.innerHTML=all_txt.join('');var from_x=-1;var from_y=-1;var to_x=-1;var to_y=-1;var extra_params=fen.indexOf('|||');if(extra_params>0){extra_params+=3;var lastmove=fen.indexOf('last=',extra_params);if(lastmove>=0){lastmove+=5;from_x=chess_from_pos_x(fen.charAt(lastmove));from_y=chess_from_pos_y(fen.charAt(lastmove+1));to_x=chess_from_pos_x(fen.charAt(lastmove+2));to_y=chess_from_pos_y(fen.charAt(lastmove+3));}var param_flip=fen.indexOf('flip=',extra_params);if(param_flip>=0){b_flip=fen.charAt(param_flip+5)=='1'?1:0;}}var board;var all=div.getElementsByTagName('div');for(var i=0;i<all.length;i++){if(all[i].id!='board')continue;board=all[i];break;}if(!board)return;board.style.width=8*gfx.size+'px';board.style.height=8*gfx.size+'px';board.style.position='relative';board.style.padding='0px';var board_parent=board.parentNode;board_parent.removeChild(board);var r=new prnd(1);var bg_dd=Math.floor((gfx.color_bg_tile?2.5:1.5)*gfx.size);var bg_img=gfx.color_bg_img?String(gfx.color_bg_img)+Math.floor(gfx.size/10)+'.jpg':'';for(x=0;x<8;x++){for(y=0;y<8;y++){var pc=document.createElement('div');var pc_style=pc.style;pc_style.position='absolute';pc_style.width=gfx.size+'px';pc_style.height=gfx.size+'px';pc_style.overflow='hidden';pc_style.left=(b_flip?7-x:x)*gfx.size+'px';pc_style.top=(b_flip?y:7-y)*gfx.size+'px';var col=(x+y)&1?'w':'b';var bg_col=(col=='w')?gfx.color_wsq:gfx.color_bsq;if(!bg_img){pc_style.background=bg_col;}else{var bx=r.rnd(bg_dd);var by=r.rnd(bg_dd);pc_style.background=bg_col+' url(/img/chess-bg'+col+bg_img+') repeat -'+bx+'px -'+by+'px';}board.appendChild(pc);var b_selected=(x==from_x&&y==from_y)||(x==to_x&&y==to_y)?1:0;if(b_selected){pc_style.border='2px solid #5555ff';pc_style.width=(gfx.size-4)+'px';pc_style.height=(gfx.size-4)+'px';}var ofs_x=0;var ofs_y=0;var pp_g=game[x+8*y];if(!pp_g)continue;var pp=pp_g.charAt(1).toLowerCase();if(pp=='k')ofs_y=0;else if(pp=='q')ofs_y=gfx.size;else if(pp=='r')ofs_y=2*gfx.size;else if(pp=='n')ofs_y=3*gfx.size;else if(pp=='b')ofs_y=4*gfx.size;else if(pp=='p')ofs_y=5*gfx.size;else continue;if(pp_g.charAt(0)=='b')ofs_x+=gfx.size;var tile=gfx.img.cloneNode(false);tile.style.left=-1*ofs_x+'px';tile.style.top=-1*ofs_y+'px';if(b_selected){tile.style.margin='-2px';}pc.appendChild(tile);}}board_parent.appendChild(board);}function decode_fen(fen,game){var char_chess='kqrnbpKQRNBP';var char_digit='12345678';var repeat=0;var cur_pos=0;var x=0;var y=7;game.splice(0,game.length);while(cur_pos<fen.length){var cc=fen.charAt(cur_pos);if(cc=='/'){while(x<8){game[x+8*y]='--';x++;}x=0;y--;if(y<0)break;}else
if(char_digit.indexOf(cc)>=0){repeat=parseInt(cc);while(repeat>0){if(x>=8){x=0;y--;if(y<0)break;}game[x+8*y]='--';x++;repeat--;}}else{var pos=char_chess.indexOf(cc);if(pos<0)break;var pc=pos>=6?'w':'b';cc=cc.toLowerCase();if((cc=='p')&&((pc=='w'&&y==1)||(pc=='b'&&y==6)))cc=cc.toUpperCase();if(x>=8){x=0;y--;if(y<0)break;}game[x+8*y]=pc+cc;x++;}cur_pos++;}while(y>=0){while(x<8){game[x+8*y]='--';x++;}x=0;y--;}var w_king=0;var b_king=0;for(var i=0;i<64;i++){var p=game[i].toLowerCase();if(p=='wk'){if(w_king)game[i]='--';w_king++;continue;}if(p=='bk'){if(b_king)game[i]='--';b_king++;continue;}}if(!w_king)game[4]='wk';if(!b_king)game[4+8*7]='bk';for(var i=0;i<8;i++){var p=game[i].charAt(1).toLowerCase();if(p=='p')game[i]='--';p=game[i+8*7].charAt(1).toLowerCase();if(p=='p')game[i+8*7]='--';}var plyr='w';while(cur_pos<fen.length){var c=fen.charAt(cur_pos++);if(c==' '||c=='\t')continue;plyr=(c=='b')?'b':'w';break;}return plyr;}function decode_pos(pos){return[pos.charCodeAt(0)-97,pos.charCodeAt(1)-49];}function chess_from_pos_x(x){return x.charCodeAt(0)-97;}function chess_from_pos_y(y){return y.charCodeAt(0)-49;}
