var ie=document.all;var nn6=document.getElementById&&!document.all;var isdrag=false;var x,y;var dobj;var switch_counter=0;var boardx=0,boardy=0;var counter=1;var sx=-1,sy=-1;var boardv=new Array();var output=new Array();var move=new Array();var movecapture=new Array();var pgn_move=new Array();var move_num=0;var total_moves=-1;var hint_counter=0;var one_lit=0;var first_color;var orient;for(i=0;i<64;i++){boardv[i]="";output[i]=""}function set_spot(a,c,b){boardv[a*8+c]=b}function get_spot(a,b){if(!valid(a,b)){return"ER"}return boardv[a*8+b]}function valid(a,b){return(a>=0&&a<8&&b>=0&&b<8)}function get_value(a,b){return b*8+a}function get_square(a,b){spot="b"+get_value(a,b);return document.getElementById(spot)}function generate_char(a,b){val=48+a*8+b;if(val==96){val=124}if(val==92){val=123}return String.fromCharCode(val)}function get_x(b){var a=new String;a+=b;code=a.charCodeAt(0);if(code==124){code=96}if(code==123){code=92}code=code-48;retval=Math.floor(code/8);if((switch_counter%2)==1){return 7-retval}return retval}function get_y(b){var a=new String;a+=b;code=a.charCodeAt(0);if(code==124){code=96}if(code==123){code=92}code=code-48;retval=code%8;if((switch_counter%2)==1){return 7-retval}return retval}function set_output(a,c,b){output[a*8+c]=b}function reset_board(){for(i=0;i<64;i++){boardv[i]="";output[i]="--"}}function make_new(b){var a=document.createElement("img");a.src="../boardimg/"+b+".gif";a.alt=b;a.className="dg";a.id="p"+counter;counter++;document.body.appendChild(a);return a.id}function flip_board(){var a=new Array(64);cc=0;for(i=0;i<8;i++){for(j=0;j<8;j++){a[cc++]=get_spot(i,j)}}cc=0;for(i=7;i>=0;i--){for(j=7;j>=0;j--){set_spot(i,j,a[cc++])}}switch_counter++;if((switch_counter%2)==1){document.getElementById("sideimage").src="../boardimg/123.png";document.getElementById("bottomimage").src="../boardimg/cba.png"}else{document.getElementById("sideimage").src="../boardimg/321.png";document.getElementById("bottomimage").src="../boardimg/abc.png"}fix_resize();calculateboard()}function set_init_board(){clear_board();reset_board();for(i=0;i<8;i++){set_spot(i,6,make_new("wp"));set_spot(i,1,make_new("bp"))}set_spot(0,0,make_new("br"));set_spot(7,0,make_new("br"));set_spot(0,7,make_new("wr"));set_spot(7,7,make_new("wr"));set_spot(1,0,make_new("bn"));set_spot(6,0,make_new("bn"));set_spot(1,7,make_new("wn"));set_spot(6,7,make_new("wn"));set_spot(2,0,make_new("bb"));set_spot(5,0,make_new("bb"));set_spot(2,7,make_new("wb"));set_spot(5,7,make_new("wb"));set_spot(3,0,make_new("bq"));set_spot(3,7,make_new("wq"));set_spot(4,0,make_new("bk"));set_spot(4,7,make_new("wk"));switch_counter=0;fix_resize()}function init(){locateboard();set_init_board();move_num=0;setstatus("-");cnt=0;var a=wm;while(a.length>0){if(a.charAt(0)=="!"){move[cnt]=a.substring(0,5);a=a.substring(5)}else{if(a.charAt(0)=="#"){move[cnt]=a.substring(0,4);a=a.substring(4)}else{if(a.charAt(0)=="&"){move[cnt]=a.substring(0,4);a=a.substring(4)}else{move[cnt]=a.substring(0,2);a=a.substring(2)}}}cnt++}pgn_move=pgn.split(" ");total_moves=cnt;fix_resize()}function unprocess(a,b){x1=get_x(a.charAt(0));y1=7-get_y(a.charAt(0));x2=get_x(a.charAt(1));y2=7-get_y(a.charAt(1));if(typeof(movecapture[move_num-1])!="undefined"){document.getElementById(movecapture[move_num-1]).style.display="inline";set_spot(x1,y1,get_spot(x2,y2));set_spot(x2,y2,movecapture[move_num-1])}else{set_spot(x1,y1,get_spot(x2,y2));set_spot(x2,y2,"")}if(b==true){pimg=document.getElementById(get_spot(x1,y1));clr=pimg.src.charAt(pimg.src.length-6);if(clr=="w"){pimg.src="http://www.chessvideos.tv/boardimg/wp.gif"}else{pimg.src="http://www.chessvideos.tv/boardimg/bp.gif"}}}function process(a,b){x1=get_x(a.charAt(0));y1=7-get_y(a.charAt(0));x2=get_x(a.charAt(1));y2=7-get_y(a.charAt(1));if(get_spot(x2,y2)!=""){movecapture[move_num]=get_spot(x2,y2);document.getElementById(get_spot(x2,y2)).style.display="none"}set_spot(x2,y2,get_spot(x1,y1));set_spot(x1,y1,"");if(b=="Q"||b=="R"||b=="B"||b=="N"){pimg=document.getElementById(get_spot(x2,y2));clr=pimg.src.charAt(pimg.src.length-6);b=b.toLowerCase();pimg.src="http://www.chessvideos.tv/boardimg/"+clr+""+b+".gif"}}function kill_spot(a){x1=get_x(a);y1=7-get_y(a);movecapture[move_num]=get_spot(x1,y1);document.getElementById(get_spot(x1,y1)).style.display="none";set_spot(x1,y1,"")}function move_back(){if(move_num<=0){return}cur_move=move[move_num-1];if(cur_move.charAt(0)=="!"){unprocess(cur_move.substring(3));unprocess(cur_move.substring(1))}else{if(cur_move.charAt(0)=="#"){unprocess(cur_move.substring(1),true)}else{if(cur_move.charAt(0)=="&"){unprocess(cur_move.substring(1));process(cur_move.substring(2))}else{unprocess(cur_move)}}}if(move_num>1){setstatus("",move_num-2)}else{setstatus("-")}move_num--;fix_resize()}function move_end(){while(move_num<total_moves){move_forward()}}function move_i(b){if(b>=0){for(var a=0;a<b;a++){if(move_num<total_moves){move_forward()}}}else{for(var a=0;a<-b;a++){if(move_num>0){move_back()}}}}function move_forward(){if(move_num==total_moves){setresult(gameresult);return}cur_move=move[move_num];setstatus("",move_num);if(cur_move.charAt(0)=="!"){process(cur_move.substring(1));process(cur_move.substring(3))}else{if(cur_move.charAt(0)=="#"){process(cur_move.substring(1),cur_move.substring(3))}else{if(cur_move.charAt(0)=="&"){process(cur_move.substring(1));kill_spot(cur_move.substring(3))}else{process(cur_move)}}}move_num++;fix_resize()}function locateboard(){var a=document.getElementById("board");boardx=a.offsetLeft;boardy=a.offsetTop}function clear_board(){reset_board();for(i=1;i<counter;i++){var a=document.getElementById("p"+i);document.body.removeChild(a)}counter=1;calculateboard()}function switch_board(){var a=new Array(64);cc=0;for(i=0;i<8;i++){for(j=0;j<8;j++){a[cc++]=get_spot(i,j)}}cc=0;for(i=7;i>=0;i--){for(j=7;j>=0;j--){set_spot(i,j,a[cc++])}}switch_counter++;if((switch_counter%2)==1){document.getElementById("sideimage").src="../boardimg/123.png";document.getElementById("bottomimage").src="../boardimg/cba.png"}else{document.getElementById("sideimage").src="../boardimg/321.png";document.getElementById("bottomimage").src="../boardimg/abc.png"}fix_resize();calculateboard()}function calculateboard(){reset_board();for(i=1;i<counter;i++){var b=document.getElementById("p"+i);if(onboard(b)==true&&b.style.display!="none"){px=getcol(b);py=getrow(b);set_spot(px,py,b.id);tempstr=b.src.substring(b.src.length-6,b.src.length-4);set_output(px,py,tempstr)}}var a="";for(i=0;i<64;i++){a+=output[i]}if(document.getElementById("boardval")){document.getElementById("boardval").value=a}if(document.getElementById("gridlayout")){document.getElementById("gridlayout").value=switch_counter%2}}function fix_resize(){locateboard();for(i=0;i<8;i++){for(j=0;j<8;j++){if(get_spot(i,j)!=""){tobj=document.getElementById(get_spot(i,j));tobj.style.left=boardx+40*i+"px";tobj.style.top=boardy+40*j+"px"}}}calculateboard()}function onboard(a){ox=a.offsetLeft;oy=a.offsetTop;return(ox>=boardx&&ox<boardx+300&&oy>=boardy&&oy<boardy+300)}function getcol(a){ox=a.offsetLeft;ox=ox-boardx;return Math.floor(ox/40)}function getrow(a){oy=a.offsetTop;oy=oy-boardy;return Math.floor(oy/40)}function setstatus(b,a){if(b=="-"){b="-";nn6?document.getElementById("status").innerHTML=b:document.all.status.innerHTML=b}b="<table>";if(a<24){for(i=0;i<=a;i++){if(i%8==0){b+="<tr>"}if(i!=a){if(i%2==0){b+="<td class = move><b>"+((i/2)+1)+".</b> "+pgn_move[i]}else{b+="<td class = move>"+pgn_move[i]+"  "}}else{if(i%2==0){b+="<td class = move><b>"+((i/2)+1)+".</b> <b>"+pgn_move[i]+"</b>"}else{b+="<td class = move><b>"+pgn_move[i]+"</b>  "}}}}else{val=16+a%8;for(i=a-val;i<=a;i++){if(i%8==0){b+="<tr>"}if(i!=a){if(i%2==0){b+="<td class = move><b>"+((i/2)+1)+".</b> "+pgn_move[i]}else{b+="<td class = move>"+pgn_move[i]+""}}else{if(i%2==0){b+="<td class = move><b>"+((i/2)+1)+".</b> <b>"+pgn_move[i]+"</b>"}else{b+="<td class = move><b>"+pgn_move[i]+"</b>"}}}}b+="</table>";nn6?document.getElementById("status").innerHTML=b:document.all.status.innerHTML=b}function setresult(a){result=a;num=move_num-1;a="<table>";if(num<16){for(i=0;i<=num;i++){if(i%8==0){a+="<tr>"}if(i!=num){if(i%2==0){a+="<td class = move><b>"+((i/2)+1)+".</b> "+pgn_move[i]}else{a+="<td class = move>"+pgn_move[i]+"  "}}else{if(i%2==0){a+="<td class = move><b>"+((i/2)+1)+".</b> <b>"+pgn_move[i]+"</b>"}else{a+="<td class = move><b>"+pgn_move[i]+"</b>  "}}}}else{val=8+num%8;for(i=num-val;i<=num;i++){if(i%8==0){a+="<tr>"}if(i!=num){if(i%2==0){a+="<td class = move><b>"+((i/2)+1)+".</b> "+pgn_move[i]}else{a+="<td class = move>"+pgn_move[i]+""}}else{if(i%2==0){a+="<td class = move><b>"+((i/2)+1)+".</b> <b>"+pgn_move[i]+"</b>"}else{a+="<td class = move><b>"+pgn_move[i]+"</b>"}}}}a+="<tr><td colspan = 8 class = move><b>Result: "+result;a+="</table>";nn6?document.getElementById("status").innerHTML=a:document.all.status.innerHTML=a}window.onresize=fix_resize;