-
Notifications
You must be signed in to change notification settings - Fork 0
/
renjuboardmin.js
1 lines (1 loc) · 465 KB
/
renjuboardmin.js
1
function CPos(){X=0;Y=0}function CColor(f,e,c,d){this.r=f;this.g=e;this.b=c;this.a=(typeof(d)==="undefined"?255:d)}CColor.prototype.ToString=function(){return"rgba("+this.r+","+this.g+","+this.b+","+this.a/255+")"};CColor.prototype.Compare=function(a){if(this.r!==a.r||this.g!==a.g||this.b!==a.b||this.a!==a.a){return false}return true};CColor.prototype.Copy=function(){return new CColor(this.r,this.g,this.b,this.a)};CColor.prototype.ToLong=function(){return((this.r<<24&4278190080)|(this.g<<16&16711680)|(this.b<<8&65280)|(this.a&255))};CColor.prototype.FromLong=function(a){this.r=(a>>24)&255;this.g=(a>>16)&255;this.b=(a>>8)&255;this.a=(a)&255};CColor.prototype.Set=function(d,c,a){this.r=d;this.g=c;this.b=a};function Common_ValuetoXY(a){var b=new CPos();b.X=a&255;b.Y=(a>>8)&255;return b}function Common_XYtoValue(b,a){return(a<<8)+b}function Common_CopyArray(d){var a=[];for(var c=0,b=d.length;c<b;c++){a.push(d[c])}return a}function Common_FindPosition(a){if(typeof(a.offsetParent)!="undefined"){for(var c=0,b=0;a;a=a.offsetParent){c+=a.offsetLeft;b+=a.offsetTop}return{X:c,Y:b}}else{return{X:a.x,Y:a.y}}}function Common_PosValueToString(a,d,c){var b=Common_ValuetoXY(a);return Common_XYtoString(b.X,b.Y,d,c)}function Common_XYtoString(e,d,c,b){var a=Common_X_to_String(e,c);a+=(b+1-d);return a}function Common_X_to_String(c,b){var a;var d=Math.max(0,Math.min(c-1,b-1));a=String.fromCharCode("A".charCodeAt(0)+d);return a}function Common_StringToXY(d,e,c){if(!d||!d.IsLatinLetter){return null}d=d.toUpperCase();var b=d.length;var g=1,f=1;var a="";if(b>=3&&d.IsLatinLetter(0)&&d.charAt(0)===d.charAt(1)&&d.charAt(0)===d.charAt(2)){a=d.substr(3);g=d.charCodeAt(0)-"A".charCodeAt(0)+50}else{if(b>=2&&d.IsLatinLetter(0)&&d.charAt(0)===d.charAt(1)){a=d.substr(2);if("I".charCodeAt(0)<d.charCodeAt(0)){g=d.charCodeAt(0)-"A".charCodeAt(0)+24}else{g=d.charCodeAt(0)-"A".charCodeAt(0)+25}}else{if(b>=1&&d.IsLatinLetter(0)){a=d.substr(1);if("I".charCodeAt(0)<d.charCodeAt(0)){g=d.charCodeAt(0)-"A".charCodeAt(0)-1}else{g=d.charCodeAt(0)-"A".charCodeAt(0)}}else{return null}}}f=parseInt(a);if(isNaN(f)){f=1}f=c-f;if(f>=c||f<0||g<0||g>=e){return null}return{X:g,Y:f}}function Common_IsInt(b){if("string"!=typeof(b)){return false}for(var c=0;c<b.length;c++){var a=b.charCodeAt(c);if(a<48||a>57){return false}}return true}function Common_SortIncrease(b,a){if(b>a){return 1}else{if(a>b){return -1}else{return 0}}}function Common_UTF8_Decode(e){var c="";var a=0;var g=0,f=0,d=0;var b=e.length;while(a<b){g=e.charCodeAt(a);if(g<128){c+=String.fromCharCode(g);a++}else{if((g>191)&&(g<224)){f=e.charCodeAt(a+1);c+=String.fromCharCode(((g&31)<<6)|(f&63));a+=2}else{f=e.charCodeAt(a+1);d=e.charCodeAt(a+2);c+=String.fromCharCode(((g&15)<<12)|((f&63)<<6)|(d&63));a+=3}}}return c}function Common_UTF8_Encode(e){var c="";var a=0;var g=0,f=0,d=0;var b=e.length;while(a<b){g=e.charCodeAt(a);if(g<128){c+=String.fromCharCode(g);a++}else{if((g>191)&&(g<224)){f=e.charCodeAt(a+1);c+=String.fromCharCode(((g&31)<<6)|(f&63));a+=2}else{f=e.charCodeAt(a+1);d=e.charCodeAt(a+2);c+=String.fromCharCode(((g&15)<<12)|((f&63)<<6)|(d&63));a+=3}}}return c}function Common_EncodeString(b,e){var g=Encodings[e];var d=b.length;var c="";for(var f=0;f<d;f++){for(var a=0;a<256;a++){if(g.charCodeAt(a)===b.charCodeAt(f)){c+=String.fromCharCode(a);break}}}return c}var Common_DragHandler={Obj:null,Init:function(d,h,f,b,e,a,i,g,j,c){d.onmousedown=Common_DragHandler.Start;d.hmode=i?false:true;d.vmode=g?false:true;d.root=h&&h!=null?h:d;if(d.hmode&&isNaN(parseInt(d.root.style.left))){d.root.style.left="0px"}if(d.vmode&&isNaN(parseInt(d.root.style.top))){d.root.style.top="350px"}if(!d.hmode&&isNaN(parseInt(d.root.style.right))){d.root.style.right="0px"}if(!d.vmode&&isNaN(parseInt(d.root.style.bottom))){d.root.style.bottom="0px"}d.minX=typeof f!="undefined"?f:null;d.minY=typeof e!="undefined"?e:null;d.maxX=typeof b!="undefined"?b:null;d.maxY=typeof a!="undefined"?a:null;d.xMapper=j?j:null;d.yMapper=c?c:null;d.root.onDragStart=function(){};d.root.onDragEnd=function(){};d.root.onDrag=function(){}},Start:function(b){var c=Common_DragHandler.Obj=this;b=Common_DragHandler.FixE(b);var d=parseInt(c.vmode?c.root.style.top:c.root.style.bottom);var a=parseInt(c.hmode?c.root.style.left:c.root.style.right);c.root.onDragStart(a,d);c.lastMouseX=b.clientX;c.lastMouseY=b.clientY;if(c.hmode){if(c.minX!=null){c.minMouseX=b.clientX-a+c.minX}if(c.maxX!=null){c.maxMouseX=c.minMouseX+c.maxX-c.minX}}else{if(c.minX!=null){c.maxMouseX=-c.minX+b.clientX+a}if(c.maxX!=null){c.minMouseX=-c.maxX+b.clientX+a}}if(c.vmode){if(c.minY!=null){c.minMouseY=b.clientY-d+c.minY}if(c.maxY!=null){c.maxMouseY=c.minMouseY+c.maxY-c.minY}}else{if(c.minY!=null){c.maxMouseY=-c.minY+b.clientY+d}if(c.maxY!=null){c.minMouseY=-c.maxY+b.clientY+d}}document.onmousemove=Common_DragHandler.Drag;document.onmouseup=Common_DragHandler.End;return false},Drag:function(f){check_MouseMoveEvent(f);f=Common_DragHandler.FixE(f);var g=Common_DragHandler.Obj;var c=f.clientY;var d=f.clientX;var i=parseInt(g.vmode?g.root.style.top:g.root.style.bottom);var b=parseInt(g.hmode?g.root.style.left:g.root.style.right);var a,h;if(g.minX!=null){d=g.hmode?Math.max(d,g.minMouseX):Math.min(d,g.maxMouseX)}if(g.maxX!=null){d=g.hmode?Math.min(d,g.maxMouseX):Math.max(d,g.minMouseX)}if(g.minY!=null){c=g.vmode?Math.max(c,g.minMouseY):Math.min(c,g.maxMouseY)}if(g.maxY!=null){c=g.vmode?Math.min(c,g.maxMouseY):Math.max(c,g.minMouseY)}a=b+((d-g.lastMouseX)*(g.hmode?1:-1));h=i+((c-g.lastMouseY)*(g.vmode?1:-1));if(g.xMapper){a=g.xMapper(i)}else{if(g.yMapper){h=g.yMapper(b)}}if(g.minX!=null){a=Math.max(a,g.minX)}if(g.maxX!=null){a=Math.min(a,g.maxX)}if(g.minY!=null){h=Math.max(h,g.minY)}if(g.maxY!=null){h=Math.min(h,g.maxY)}Common_DragHandler.Obj.root.style[g.hmode?"left":"right"]=a+"px";Common_DragHandler.Obj.root.style[g.vmode?"top":"bottom"]=h+"px";Common_DragHandler.Obj.lastMouseX=d;Common_DragHandler.Obj.lastMouseY=c;Common_DragHandler.Obj.root.onDrag(a,h);return false},End:function(){document.onmousemove=null;document.onmouseup=null;Common_DragHandler.Obj.root.onDragEnd(parseInt(Common_DragHandler.Obj.root.style[Common_DragHandler.Obj.hmode?"left":"right"]),parseInt(Common_DragHandler.Obj.root.style[Common_DragHandler.Obj.vmode?"top":"bottom"]));Common_DragHandler.Obj=null},FixE:function(a){if(typeof a=="undefined"){a=window.event}if(typeof a.layerX=="undefined"){a.layerX=a.offsetX}if(typeof a.layerY=="undefined"){a.layerY=a.offsetY}return a}};function CommonExtend(b,a){var c=function(){};c.prototype=a.prototype;b.prototype=new c();b.prototype.constructor=b;b.superclass=a.prototype}var Common_RequestAnimationFrame=(window.requestAnimationFrame?window.requestAnimationFrame:(function(){return window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(a){return window.setTimeout(a,1000/60)}})());var Common_CancelAnimationFrame=(window.cancelAnimationFrame?window.cancelAnimationFrame:(function(){return window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||window.oCancelAnimationFrame||window.msCancelAnimationFrame||function(a){window.clearTimeout(a)}})());function CCommon(){}CCommon.prototype.Get_Browser=function(){var a="";var b=navigator.userAgent;if(-1!=b.indexOf("Opera")){a="Opera"}else{if(-1!=b.indexOf("Chrome")){a="Chrome"}else{if(-1!=b.indexOf("MSIE")){a="IE"}else{if(-1!=b.indexOf("Safari")){a="Safari"}else{if(-1!=b.indexOf("Mozilla")){a="Mozilla"}}}}}return a};CCommon.prototype.SaveAs=function(a,d,c){if(typeof navigator!=="undefined"&&navigator.msSaveOrOpenBlob){return navigator.msSaveOrOpenBlob(a,d)}var e=document.createElementNS("http://www.w3.org/1999/xhtml","a");var b=(window.URL||window.webkitURL||window).createObjectURL(a);e.href=b;e.download=d;if(c){e.type=c}this.Click(e)};CCommon.prototype.OpenFileDialog=function(c){var b=document.getElementsByTagName("body");if(b.length>0){var a=b[0];var d=document.createElement("input");a.appendChild(d);d.type="file";d.multiple=false;d.accept=".sgf";d.style.display="none";d.addEventListener("change",function(e){var g=e.target.files;if(g.length>0){var h=g[0];var i=h.name.split(".").pop().toLowerCase();var f=new FileReader();f.onload=function(j){c.Load_Sgf(j.target.result,null,null,i);c.Focus()};f.readAsText(h);c.Focus()}},false);this.Click(d);a.removeChild(d)}};CCommon.prototype.Click=function(b){var a=document.createEvent("MouseEvents");a.initMouseEvent("click",true,false,window,0,0,0,0,0,false,false,false,false,0,null);b.dispatchEvent(a)};CCommon.prototype.Get_LocalStorageItem=function(a){if(undefined!==window.localStorage){var b="HTMLRenjuBoard"+a;return localStorage.getItem(b)}return""};CCommon.prototype.Set_LocalStorageItem=function(a,c){if(undefined!==window.localStorage){var b="HTMLRenjuBoard"+a;localStorage.setItem(b,c)}};CCommon.prototype.Encode_Base64=function(e){var h="";var d,c,b=0;var j,i,g,f=0;var a=0;do{d=e[a++];c=e[a++];b=e[a++];j=d>>2;i=((d&3)<<4)|(c>>4);g=((c&15)<<2)|(b>>6);f=b&63;if(isNaN(c)){g=f=64}else{if(isNaN(b)){f=64}}h=h+g_oBase64String.charAt(j)+g_oBase64String.charAt(i)+g_oBase64String.charAt(g)+g_oBase64String.charAt(f)}while(a<e.length);return h};CCommon.prototype.Decode_Base64=function(c){var f,e,d=0;var j,i,h,g="";var a=0;var k=c.replace(/[^A-Za-z0-9\+\/\=]/g,"");var b=[];do{j=g_oBase64String.indexOf(k.charAt(a++));i=g_oBase64String.indexOf(k.charAt(a++));h=g_oBase64String.indexOf(k.charAt(a++));g=g_oBase64String.indexOf(k.charAt(a++));f=(j<<2)|(i>>4);e=((i&15)<<4)|(h>>2);d=((h&3)<<6)|g;b.push(f);if(h!=64){b.push(e)}if(g!=64){b.push(d)}}while(a<k.length);return b};CCommon.prototype.Encode_Base64_UrlSafe=function(a){var b=this.Encode_Base64(a);b=b.replace(new RegExp("\\+","g"),"~");b=b.replace(new RegExp("\\/","g"),"-");b=b.replace(new RegExp("=","g"),"_");return b};CCommon.prototype.Decode_Base64_UrlSafe=function(a){a=a.replace(new RegExp("~","g"),"+");a=a.replace(new RegExp("-","g"),"/");a=a.replace(new RegExp("_","g"),"=");return this.Decode_Base64(a)};CCommon.prototype.Set_InnerTextToElement=function(b,a){if(b.innerText){b.innerText=a}else{b.textContent=a}};CCommon.prototype.Is_NodeDescendant=function(c,b,e){if(!c||!b){return false}var a=(e?e:0);var d=b.parentNode;while(d!=null){if(d==c){return true}a--;if(a<0){return false}d=d.parentNode}return false};CCommon.prototype.Create_DivElement=function(c,b){var a=document.createElement("div");a.setAttribute("id",b);a.setAttribute("style","position:absolute;padding:0;margin:0;");a.setAttribute("oncontextmenu","return false;");c.appendChild(a);return a};CCommon.prototype.Compare_Strings=function(d,c){if(!d){return -1}if(!c){return 1}var b=d.toLowerCase();var a=c.toLowerCase();if(b<a){return -1}else{if(b>a){return 1}else{if(d<c){return -1}else{if(d>c){return 1}}}}return 0};CCommon.prototype.ClearNode=function(a){while(a.firstChild){a.removeChild(a.firstChild)}};var g_oBase64String="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var Common=new CCommon();"use strict";function CControlBounds(){this.L=0;this.T=0;this.R=0;this.B=0;this.isAbsL=false;this.isAbsT=false;this.isAbsR=false;this.isAbsB=false;this.AbsW=-1;this.AbsH=-1}CControlBounds.prototype.SetParams=function(c,g,i,e,b,h,j,d,a,f){this.L=c;this.T=g;this.R=i;this.B=e;this.isAbsL=b;this.isAbsT=h;this.isAbsR=j;this.isAbsB=d;this.AbsW=a;this.AbsH=f};var g_anchor_left=1;var g_anchor_top=2;var g_anchor_right=4;var g_anchor_bottom=8;function CControlContainer(){this.Bounds=new CControlBounds();this.Anchor=g_anchor_left|g_anchor_top;this.Name=null;this.Parent=null;this.TabIndex=null;this.HtmlElement=null;this.AbsolutePosition=new CControlBounds();this.Controls=new Array();this.width=0;this.height=0;this.Type=0;this.DrawingElement=null;this.RMin=400}CControlContainer.prototype.Set_Type=function(b,c,a){this.Type=b;this.DrawingElement=c;if(c&&c.Add_LinkedControl){c.Add_LinkedControl(this)}if(a&&undefined!==a.RMin){this.RMin=a.RMin}};CControlContainer.prototype.AddControl=function(a){a.Parent=this;this.Controls[this.Controls.length]=a};CControlContainer.prototype.Resize=function(a,f){this.width=a;this.height=f;if(null==this.Parent){this.AbsolutePosition.L=0;this.AbsolutePosition.T=0;this.AbsolutePosition.R=a;this.AbsolutePosition.B=f;if(null!==this.HtmlElement){this.private_ResizeControls(a,f)}return}var e=0;var b=0;var h=0;var d=0;var g=(this.Anchor&5);var c=(this.Anchor&10);if(g_anchor_left==g){if(this.Bounds.isAbsL){e=this.Bounds.L}else{e=(this.Bounds.L*a/1000)}if(-1!=this.Bounds.AbsW){h=e+this.Bounds.AbsW}else{if(this.Bounds.isAbsR){h=(a-this.Bounds.R)}else{h=this.Bounds.R*a/1000}}}else{if(g_anchor_right==g){if(this.Bounds.isAbsR){h=(a-this.Bounds.R)}else{h=(this.Bounds.R*a/1000)}if(-1!=this.Bounds.AbsW){e=h-this.Bounds.AbsW}else{if(this.Bounds.isAbsL){e=this.Bounds.L}else{e=this.Bounds.L*a/1000}}}else{if((g_anchor_left|g_anchor_right)==g){if(this.Bounds.isAbsL){e=this.Bounds.L}else{e=(this.Bounds.L*a/1000)}if(this.Bounds.isAbsR){h=(a-this.Bounds.R)}else{h=(this.Bounds.R*a/1000)}}else{e=this.Bounds.L;h=this.Bounds.R}}}if(g_anchor_top==c){if(this.Bounds.isAbsT){b=this.Bounds.T}else{b=(this.Bounds.T*f/1000)}if(-1!=this.Bounds.AbsH){d=b+this.Bounds.AbsH}else{if(this.Bounds.isAbsB){d=(f-this.Bounds.B)}else{d=this.Bounds.B*f/1000}}}else{if(g_anchor_bottom==c){if(this.Bounds.isAbsB){d=(f-this.Bounds.B)}else{d=(this.Bounds.B*f/1000)}if(-1!=this.Bounds.AbsH){b=d-this.Bounds.AbsH}else{if(this.Bounds.isAbsT){b=this.Bounds.T}else{b=this.Bounds.T*f/1000}}}else{if((g_anchor_top|g_anchor_bottom)==c){if(this.Bounds.isAbsT){b=this.Bounds.T}else{b=(this.Bounds.T*f/1000)}if(this.Bounds.isAbsB){d=(f-this.Bounds.B)}else{d=(this.Bounds.B*f/1000)}}else{b=this.Bounds.T;d=this.Bounds.B}}}if(h<e){h=e}if(d<b){d=b}if(-2===this.Bounds.AbsW){h=e+(d-b)*1}else{if(-3===this.Bounds.AbsW){e=(d-b)*1}}this.AbsolutePosition.L=e;this.AbsolutePosition.T=b;this.AbsolutePosition.R=h;this.AbsolutePosition.B=d;this.HtmlElement.style.left=((e+0.5)|0)+"px";this.HtmlElement.style.top=((b+0.5)|0)+"px";this.HtmlElement.style.width=(((h-e)+0.5)|0)+"px";this.HtmlElement.style.height=(((d-b)+0.5)|0)+"px";this.HtmlElement.width=((h-e)+0.5)|0;this.HtmlElement.height=((d-b)+0.5)|0;this.private_ResizeControls(h-e,d-b)};CControlContainer.prototype.private_ResizeControls=function(z,a){var A=this.Controls.length;if(1===this.Type&&2===A){var n=(this.DrawingElement?this.DrawingElement.Get_AspectRatio():1);var g=this.Controls[0];var d=this.Controls[1];var o=this.RMin;var b=z;var l=a;b-=o;var e=l*n;var q=b/n;var m,v,k,j;if(e<=b){v=l;m=e;j=0;k=0}else{m=b;v=q;k=0;j=(l-v)/2}g.Bounds.SetParams(k,j,1000,1000,true,true,false,false,m,v);g.Anchor=(g_anchor_left|g_anchor_top);d.Bounds.SetParams(m,0,1000,1000,true,false,false,false,-1,-1);d.Anchor=(g_anchor_right|g_anchor_bottom|g_anchor_top)}else{if(2===this.Type&&1===A){if(!this.DrawingElement){var B=this.Controls[0];var r=Math.min(z,a);var u=(z-r)/2;var t=(a-r)/2;B.Bounds.SetParams(u,t,1000,1000,true,true,true,false,r,r);B.Anchor=(g_anchor_left|g_anchor_bottom|g_anchor_top)}else{var n=this.DrawingElement.Get_AspectRatio();var B=this.Controls[0];var e=a*n;var q=z/n;var m,v,k,j;if(e<=z){v=a;m=e;j=0;k=(z-m)/2}else{m=z;v=q;k=0;j=(a-v)/2}B.Bounds.SetParams(k,j,1000,1000,true,true,false,false,m,v);B.Anchor=(g_anchor_left|g_anchor_top)}}else{if(3===this.Type&&2===A){var n=(this.DrawingElement?this.DrawingElement.Get_AspectRatio():1);var c=this.Controls[0];var p=this.Controls[1];var f=this.RMin;var b=z;var l=a;l-=f;var e=l*n;var q=b/n;var m,v,k,j;if(e<=b){v=l;m=e;j=0;k=(b-m)/2}else{m=b;v=q;k=0;j=0}c.Bounds.SetParams(k,j,1000,1000,true,true,false,false,m,v);c.Anchor=(g_anchor_left|g_anchor_top);p.Bounds.SetParams(0,v,1000,1000,false,true,false,false,-1,-1);p.Anchor=(g_anchor_left|g_anchor_right|g_anchor_bottom)}}}for(var s=0;s<A;s++){this.Controls[s].Resize(z,a)}};CControlContainer.prototype.Clear=function(){this.Controls=[];this.Type=0;this.DrawingElement=null;this.RMin=400};CControlContainer.prototype.SetParams=function(c,g,i,e,b,h,j,d,a,f){this.Bounds.SetParams(c,g,i,e,b,h,j,d,a,f)};CControlContainer.prototype.SetAnchor=function(c,a,b,d){this.Anchor=0;if(c){this.Anchor|=g_anchor_left}if(a){this.Anchor|=g_anchor_top}if(b){this.Anchor|=g_anchor_right}if(d){this.Anchor|=g_anchor_bottom}};function CreateControlContainer(a){var b=new CControlContainer();b.Name=a;b.HtmlElement=document.getElementById(a);return b}function CreateControlContainerByElement(a){var b=new CControlContainer();b.HtmlElement=a;return b}function CControlContainerBoardAndBottomButtons(){this.Parent=null;this.HtmlElement=null;this.H=0;this.Controls=new Array()}CControlContainerBoardAndBottomButtons.prototype.Set=function(a){this.H=a};CControlContainerBoardAndBottomButtons.prototype.AddControl=function(a){a.Parent=this;this.Controls[this.Controls.length]=a};CControlContainerBoardAndBottomButtons.prototype.Resize=function(a,d){var b=d-this.H;var g=a;if(g!==b){g=Math.min(g,b);b=g}var h=(a-g)/2;var f=(d-this.H-b)/2;this.HtmlElement.style.left=parseInt(h+0.5)+"px";this.HtmlElement.style.top=parseInt(f+0.5)+"px";this.HtmlElement.style.width=parseInt(g+0.5)+"px";this.HtmlElement.style.height=parseInt(b+this.H+0.5)+"px";this.HtmlElement.width=parseInt(g+0.5);this.HtmlElement.height=parseInt(b+this.H+0.5);var e=this.Controls.length;for(var c=0;c<e;c++){this.Controls[c].Resize(g,b+this.H)}};CControlContainerBoardAndBottomButtons.Create=function(b){var a=new CControlContainerBoardAndBottomButtons();a.Name=b;a.HtmlElement=document.getElementById(b);return a};"use strict";var EBoardMode={Move:0,AddRemove:2,AddMarkTr:3,AddMarkSq:4,AddMarkCr:5,AddMarkX:6,AddMarkTx:7,AddMarkNum:8,AddMarkColor:10,ViewPort:11};function CDrawingBoard(a){this.m_oDrawing=a;this.m_oGameTree=null;this.m_oLogicBoard=null;this.m_eMode=EBoardMode.Move;this.m_bRulers=g_oGlobalSettings.Is_Rulers();this.m_dKoeffOffsetY=0;this.m_dKoeffOffsetX=0;this.m_dKoeffCellW=0;this.m_dKoeffCellH=0;this.m_dKoeffDiam=0;this.m_oBoardPosition={};this.m_oCreateWoodyId=null;this.m_bBlackWhiteLastMark=false;this.m_oImageData={W:0,H:0,W2:0,H2:0,StoneDiam:0,ShadowOff:0,HandiRad:2,Lines:null,Handi:null,Board:null,BlackStone:null,WhiteStones:new Array(),WhiteStones2:new Array(361),BlackTarget:null,WhiteTarget:null,ResizeBoard:null,X_Black:null,X_White:null,Tr_Black:null,Tr_White:null,Tr_Hint:null,Sq_Black:null,Sq_White:null,Ter_Black:null,Ter_White:null,Ter_Black2:null,Ter_White2:null,LastMove:null,Cr_Black:null,Cr_White:null,RcolorTarget:null,GcolorTarget:null,BcolorTarget:null,AcolorTarget:null};this.m_oVariantsColor=new CColor(255,0,0,128);this.HtmlElement={Control:null,Board:{Control:null},Lines:{Control:null},Stones:{Control:null},Colors:{Control:null},Shadow:{Control:null},Variants:{Control:null},Marks:{Control:null},Select:{Control:null},Target:{Control:null},Event:{Control:null},LinkedControls:[]};this.m_oTarget=new CBoardTarget(this.m_oImageData,this);this.m_oColorMarks={};this.m_oMarks={};this.m_oLastMoveMark=-1;this.m_oHints={};this.m_oViewPort={X0:0,Y0:0,X1:18,Y1:18};this.m_oViewPortSelection={Start:false,StartX:-1,StartY:-1,EndX:-1,EndY:-1};this.m_oEventsCatcher=null;this.m_oPresentation=null;this.m_bMouseDown=false;var b=this;this.private_OnMouseMove=function(d){check_MouseMoveEvent(d);var c=b.private_UpdateMousePos(global_mouseEvent.X,global_mouseEvent.Y);c=b.private_GetBoardPosByXY(c.X,c.Y);b.private_MoveTarget(c.X,c.Y,global_mouseEvent,false);b.private_HandleMouseMove(c.X,c.Y,global_mouseEvent)};this.private_OnMouseOut=function(c){check_MouseMoveEvent(c);if(true===b.m_bMouseDown){b.m_bMouseDown=false;b.private_OnMouseUp(c)}b.private_HideTarget()};this.private_OnMouseDown=function(d){check_MouseDownEvent(d,true);b.m_bMouseDown=true;b.HtmlElement.Event.Control.HtmlElement.focus();var c=b.private_UpdateMousePos(global_mouseEvent.X,global_mouseEvent.Y);c=b.private_GetBoardPosByXY(c.X,c.Y);b.private_HandleMouseDown(c.X,c.Y,global_mouseEvent);d.preventDefault();return false};this.private_OnMouseUp=function(d){check_MouseMoveEvent(d);b.m_bMouseDown=false;var c=b.private_UpdateMousePos(global_mouseEvent.X,global_mouseEvent.Y);c=b.private_GetBoardPosByXY(c.X,c.Y);b.private_HandleMouseUp(c.X,c.Y,global_mouseEvent)};this.private_OnMouseWheel=function(c){if(b.m_bMouseLock){return false}var d=0;if(undefined!=c.wheelDelta){d=c.wheelDelta}else{d=-c.detail}if(d<0){b.m_oGameTree.Step_Forward(1)}else{b.m_oGameTree.Step_Backward(1)}if(c.preventDefault){c.preventDefault()}return false};this.private_OnKeyDown=function(d){check_KeyboardEvent(d);var c=false;if(16===global_keyboardEvent.KeyCode&&EBoardMode.AddRemove===b.Get_Mode()){global_mouseEvent.ShiftKey=true;b.private_UpdateTargetType();c=true}else{if((16===global_keyboardEvent.KeyCode||17===global_keyboardEvent.KeyCode)&&EBoardMode.AddMarkColor===b.Get_Mode()){if(16===global_keyboardEvent.KeyCode){global_mouseEvent.ShiftKey=true}else{if(17===global_keyboardEvent.KeyCode){global_mouseEvent.CtrlKey=true}}b.private_UpdateTargetType();c=true}else{c=b.private_HandleKeyDown(global_keyboardEvent);if(true===c&&112<=global_keyboardEvent.KeyCode&&global_keyboardEvent.KeyCode<=121){b.private_UpdateTargetType()}else{if(true===c){b.private_HideTarget()}}}}if(true===c){d.preventDefault()}return(c?false:true)};this.private_OnKeyUp=function(c){check_KeyboardEvent(c);if(16===global_keyboardEvent.KeyCode&&EBoardMode.AddRemove===b.Get_Mode()){global_mouseEvent.ShiftKey=false;b.private_UpdateTargetType()}else{if((16===global_keyboardEvent.KeyCode||17===global_keyboardEvent.KeyCode)&&EBoardMode.AddMarkColor===b.Get_Mode()){if(16===global_keyboardEvent.KeyCode){global_mouseEvent.ShiftKey=false}else{if(17===global_keyboardEvent.KeyCode){global_mouseEvent.CtrlKey=false}}b.private_UpdateTargetType()}}};this.private_OnKeyPress=function(c){};this.private_StartDrawingTimer=function(){return setTimeout(function(){b.private_CreateTrueColorBoard();b.private_CreateLines();b.private_CreateTrueColorStones();b.private_CreateShadows();b.private_CreateMarks();b.private_OnResize();b.m_oImageData.ResizeBoard=b.Get_FullImage(true)},20)};this.private_OnDragover=function(c){c.preventDefault();return false};this.private_OnDrop=function(g){g.preventDefault();if(g.dataTransfer.files.length>0&&FileReader){var d=g.dataTransfer.files[0];var f=d.name.split(".").pop().toLowerCase();var c=new FileReader();c.onload=function(e){b.m_oGameTree.Load_Sgf(e.target.result,null,null,f)};c.readAsText(d);b.Focus()}};this.private_OnContextMenu=function(c){c.preventDefault();return false}}CDrawingBoard.prototype.Init=function(h,o){if(this.m_oDrawing){this.m_oDrawing.Register_Board(this)}this.Set_GameTree(o);this.HtmlElement.Control=CreateControlContainer(h);var d=this.HtmlElement.Control.HtmlElement;var c=h+"_BoardCanvas";var g=h+"_LinesCanvas";var j=h+"_ColorCanvas";var n=h+"_ShadowsCanvas";var f=h+"_StonesCanvas";var e=h+"_VariantsCanvas";var a=h+"_MarksCanvas";var p=h+"_TargetCanvas";var k=h+"_SelectCanvas";var i=h+"_CursorCanvas";var l=h+"_EventDiv";this.private_CreateCanvasElement(d,c);this.private_CreateCanvasElement(d,g);this.private_CreateCanvasElement(d,j);this.private_CreateCanvasElement(d,n);this.private_CreateCanvasElement(d,f);this.private_CreateCanvasElement(d,e);this.private_CreateCanvasElement(d,a);this.private_CreateCanvasElement(d,k);this.private_CreateCanvasElement(d,p);this.private_CreateDivElement(d,i);var m=this.private_CreateDivElement(d,l);this.m_oTarget.Init(i);var b=this.HtmlElement.Control;this.private_FillHtmlElement(this.HtmlElement.Board,b,c);this.private_FillHtmlElement(this.HtmlElement.Lines,b,g);this.private_FillHtmlElement(this.HtmlElement.Colors,b,j);this.private_FillHtmlElement(this.HtmlElement.Shadow,b,n);this.private_FillHtmlElement(this.HtmlElement.Stones,b,f);this.private_FillHtmlElement(this.HtmlElement.Variants,b,e);this.private_FillHtmlElement(this.HtmlElement.Marks,b,a);this.private_FillHtmlElement(this.HtmlElement.Select,b,k);this.private_FillHtmlElement(this.HtmlElement.Target,b,p);this.private_FillHtmlElement(this.HtmlElement.Event,b,l);m.onmousemove=this.private_OnMouseMove;m.onmouseout=this.private_OnMouseOut;m.onmousedown=this.private_OnMouseDown;m.onmouseup=this.private_OnMouseUp;m.onkeydown=this.private_OnKeyDown;m.onkeyup=this.private_OnKeyUp;m.onkeypress=this.private_OnKeyPress;m.tabIndex=-1;m.style.hidefocus=true;m.style.outline=0;m.ondragover=this.private_OnDragover;m.ondrop=this.private_OnDrop;m.onmousewheel=this.private_OnMouseWheel;if(m.addEventListener){m.addEventListener("contextmenu",this.private_OnContextMenu,false);m.addEventListener("DOMMouseScroll",this.private_OnMouseWheel,false)}return b};CDrawingBoard.prototype.Add_LinkedControl=function(a){this.HtmlElement.LinkedControls.push(a)};CDrawingBoard.prototype.Focus=function(){this.HtmlElement.Event.Control.HtmlElement.focus()};CDrawingBoard.prototype.Set_Rulers=function(a){if(a!==this.m_bRulers){g_oGlobalSettings.Set_Rulers(a);this.m_bRulers=a;this.m_oDrawing.Update_Size(true)}};CDrawingBoard.prototype.Get_Rulers=function(){return this.m_bRulers};CDrawingBoard.prototype.Set_ShellWhiteStones=function(a){if(this.m_oGameTree){this.m_oGameTree.Get_LocalSettings().Set_BoardShellWhiteStones(a)}};CDrawingBoard.prototype.Set_BlackWhiteLastMark=function(a){this.m_bBlackWhiteLastMark=a};CDrawingBoard.prototype.Get_FullImage=function(c){var a=document.createElement("canvas");var b=a.getContext("2d");a.width=this.HtmlElement.Board.Control.HtmlElement.width;a.height=this.HtmlElement.Board.Control.HtmlElement.height;b.drawImage(this.HtmlElement.Board.Control.HtmlElement,0,0);b.drawImage(this.HtmlElement.Lines.Control.HtmlElement,0,0);if(true===c){b.drawImage(this.HtmlElement.Colors.Control.HtmlElement,0,0)}b.drawImage(this.HtmlElement.Shadow.Control.HtmlElement,0,0);b.drawImage(this.HtmlElement.Stones.Control.HtmlElement,0,0);b.drawImage(this.HtmlElement.Marks.Control.HtmlElement,0,0);return a};CDrawingBoard.prototype.Update_Size=function(d){var a=this.HtmlElement.Control.HtmlElement.clientWidth;var c=this.HtmlElement.Control.HtmlElement.clientHeight;var f=this.Get_AspectRatio();var b=c*f;var e=a/f;if(b<=a){a=b}else{c=e}if(a!==this.m_oImageData.W2||c!==this.m_oImageData.H2||true===d){this.m_oImageData.W2=a;this.m_oImageData.H2=c;this.HtmlElement.Control.Resize(a,c);this.private_UpdateKoeffs();this.private_OnResize(d)}};CDrawingBoard.prototype.Set_Presentation=function(a){this.m_oPresentation=a};CDrawingBoard.prototype.On_Resize=function(a){this.private_UpdateKoeffs();this.private_OnResize(a)};CDrawingBoard.prototype.On_EndLoadSgf=function(){this.m_oImageData.ResizeBoard=null;if(null!==this.m_oPresentation){if(this.m_oGameTree.Get_CurNode().Count_NodeNumber()>=this.m_oPresentation.Get_NodesCountInSlide()){this.m_oPresentation.On_EndSgfSlide()}}};CDrawingBoard.prototype.Set_ViewPort=function(b,g,a,e){var d=this.m_oLogicBoard.Get_Size();var f=d.X,c=d.Y;this.m_oViewPort.X0=Math.max(0,Math.min(f-1,b));this.m_oViewPort.Y0=Math.max(0,Math.min(c-1,g));this.m_oViewPort.X1=Math.max(0,Math.min(f-1,a));this.m_oViewPort.Y1=Math.max(0,Math.min(c-1,e));if(this.m_oViewPort.X1<=this.m_oViewPort.X0){this.m_oViewPort.X0=0;this.m_oViewPort.X1=f-1}if(this.m_oViewPort.Y1<=this.m_oViewPort.Y0){this.m_oViewPort.Y0=0;this.m_oViewPort.Y1=c-1}};CDrawingBoard.prototype.Get_ViewPort=function(){return this.m_oViewPort};CDrawingBoard.prototype.Reset_ViewPort=function(){var b=this.m_oLogicBoard.Get_Size();var c=b.X,a=b.Y;this.m_oViewPort.X0=0;this.m_oViewPort.Y0=0;this.m_oViewPort.X1=c-1;this.m_oViewPort.Y1=a-1};CDrawingBoard.prototype.Get_ViewPort=function(){return this.m_oViewPort};CDrawingBoard.prototype.Get_SelectedViewPort=function(){var b=Math.min(this.m_oViewPortSelection.StartX,this.m_oViewPortSelection.EndX);var a=Math.max(this.m_oViewPortSelection.StartX,this.m_oViewPortSelection.EndX);var d=Math.min(this.m_oViewPortSelection.StartY,this.m_oViewPortSelection.EndY);var c=Math.max(this.m_oViewPortSelection.StartY,this.m_oViewPortSelection.EndY);return{X0:b,Y0:d,X1:a,Y1:c}};CDrawingBoard.prototype.Draw_Sector=function(e,c,j){if(!this.m_oImageData.Lines){return}if(j===this.m_oBoardPosition[Common_XYtoValue(e,c)]){return}var n=this.HtmlElement.Stones.Control.HtmlElement.getContext("2d");var h=this.HtmlElement.Shadow.Control.HtmlElement.getContext("2d");var k=this.m_oImageData.StoneDiam;var l=(k-1)/2;var m=this.m_oImageData.Lines;var g=this.m_oImageData.ShadowOff;var i=this.private_GetSettings_Shadows();if(true===this.private_IsPointInViewPort(e-1,c-1)){var b=m[e-1].X-l;var a=m[c-1].Y-l;switch(j){case BOARD_BLACK:n.putImageData(this.m_oImageData.BlackStone,b,a);if(true===i){h.putImageData(this.m_oImageData.Shadow,b+g,a+g)}break;case BOARD_WHITE:var f=this.m_oImageData.WhiteStones2[e-1+(c-1)*this.m_oLogicBoard.Get_Size().X];n.putImageData(this.m_oImageData.WhiteStones[f],b,a);if(true===i){h.putImageData(this.m_oImageData.Shadow,b+g,a+g)}break;case BOARD_EMPTY:default:n.clearRect(b,a,k,k);if(true===i){h.clearRect(b+g,a+g,k,k)}break}}this.m_oBoardPosition[Common_XYtoValue(e,c)]=j;if(true===this.m_oTarget.Check_XY(e,c)){this.private_UpdateTargetType()}};CDrawingBoard.prototype.Get_BoardState=function(){var a={};var b={};for(var e in this.m_oBoardPosition){a[e]=this.m_oBoardPosition[e]}for(var d in this.m_oMarks){var e=parseInt(d);var c=this.m_oMarks[d];if(EDrawingMark.Tx===c.Get_Type()&&BOARD_EMPTY===this.m_oLogicBoard.Get(c.Get_X(),c.Get_Y())){b[e]=false}else{b[e]=true}}return{Stones:a,Marks:b}};CDrawingBoard.prototype.Get_BoardAreaByPosition=function(f,e,g,b){if(true!==this.private_IsPointInViewPort(f-1,e-1)){return null}var n=this.m_oImageData.Lines;if(true===b){var l=this.m_oImageData.StoneDiam;var m=(l-1)/2;var i=g?this.m_oImageData.ShadowOff:0;var c=n[f-1].X-m;var a=n[e-1].Y-m;return{X0:c,Y0:a,X1:c+l+i,Y1:a+l+i}}else{var k=n[1].X-n[0].X+2;var q=n[1].Y-n[0].Y+2;var j=n[f-1].X_L2;var p=n[e-1].Y_L2;var h=j+k;var o=p+q;return{X0:j,Y0:p,X1:h,Y1:o}}};CDrawingBoard.prototype.Show_Target=function(){this.private_UpdateTargetType()};CDrawingBoard.prototype.Remove_Mark=function(c,b){var a=Common_XYtoValue(c,b);delete this.m_oMarks[""+a];if(a===this.m_oLastMoveMark){this.m_oMarks[""+a]=new CDrawingMark(c,b,EDrawingMark.Lm,"")}};CDrawingBoard.prototype.Get_Mark=function(d,c){var b=Common_XYtoValue(d,c);var a=this.m_oMarks[""+b];if(a){return a}return null};CDrawingBoard.prototype.Add_Mark=function(a){this.private_SetMark(a.Get_X(),a.Get_Y(),a)};CDrawingBoard.prototype.Remove_AllMarks=function(){this.m_oMarks={}};CDrawingBoard.prototype.Draw_Marks=function(){this.private_DrawMarks()};CDrawingBoard.prototype.Draw_AllStones=function(){this.private_DrawTrueColorAllStones()};CDrawingBoard.prototype.Set_LastMoveMark=function(b,a){this.private_SetLastMoveMark(b,a)};CDrawingBoard.prototype.Set_ViewPortMode=function(){this.Set_Mode(EBoardMode.ViewPort)};CDrawingBoard.prototype.Set_GameTree=function(a){this.m_oGameTree=a;this.m_oLogicBoard=a.Get_Board();a.Set_DrawingBoard(this);this.Reset_ViewPort()};CDrawingBoard.prototype.Set_Mode=function(a){if(!(this.m_oGameTree.m_nEditingFlags&EDITINGFLAGS_BOARDMODE)&&a!==EBoardMode.ViewPort){return}if(this.m_eMode!==a){this.m_eMode=a;this.private_UpdateTargetType();this.m_oGameTree.Update_InterfaceState()}};CDrawingBoard.prototype.Get_Mode=function(){return this.m_eMode};CDrawingBoard.prototype.private_DrawVariants=function(){if(this.m_oGameTree){this.m_oGameTree.Show_Variants()}};CDrawingBoard.prototype.Draw_Variant=function(i,h){if(!this.m_oImageData.Lines){return}var g=this.m_oImageData.StoneDiam/2;var f=(g-1)/2;var e=this.m_oImageData.Lines;if(true===this.private_IsPointInViewPort(i-1,h-1)){var b=e[i-1].X;var a=e[h-1].Y;var c=this.HtmlElement.Variants.Control.HtmlElement.getContext("2d");c.fillStyle=this.m_oVariantsColor.ToString();c.beginPath();c.arc(b,a,f,0,2*Math.PI,false);c.fill()}};CDrawingBoard.prototype.Clear_Variants=function(){var a=this.HtmlElement.Variants.Control.HtmlElement.getContext("2d");a.clearRect(0,0,this.m_oImageData.W,this.m_oImageData.H)};CDrawingBoard.prototype.Get_AspectRatio=function(){var c=this.m_oLogicBoard.Get_Size();var d=c.X;var b=c.Y;var a=(this.m_oViewPort.X1-this.m_oViewPort.X0)*g_dBoardCellW+2*g_dBoardHorOffset;var e=(this.m_oViewPort.Y1-this.m_oViewPort.Y0)*g_dBoardCellW+2*g_dBoardHorOffset;if(true===this.m_bRulers){a+=g_dBoardCellW;e+=g_dBoardCellW}if(this.m_oViewPort.X0>0){a+=g_dBoardCellW_2/2}if(this.m_oViewPort.X1<d-1){a+=g_dBoardCellW_2/2}if(this.m_oViewPort.Y0>0){e+=g_dBoardCellW_2/2}if(this.m_oViewPort.Y1<b-1){e+=g_dBoardCellW_2/2}return(a/e)};CDrawingBoard.prototype.private_CreateCanvasElement=function(c,b){var a=document.createElement("canvas");a.setAttribute("id",b);a.setAttribute("style","position:absolute;padding:0;margin:0;");a.setAttribute("oncontextmenu","return false;");c.appendChild(a);return a};CDrawingBoard.prototype.private_CreateDivElement=function(c,b){var a=document.createElement("div");a.setAttribute("id",b);a.setAttribute("style","position:absolute;padding:0;margin:0;");a.setAttribute("oncontextmenu","return false;");c.appendChild(a);return a};CDrawingBoard.prototype.private_FillHtmlElement=function(b,a,d){b.Control=CreateControlContainer(d);var c=b.Control;c.Bounds.SetParams(0,0,1000,1000,false,false,false,false,-1,-1);c.Anchor=(g_anchor_top|g_anchor_left|g_anchor_bottom|g_anchor_right);a.AddControl(c)};CDrawingBoard.prototype.private_UpdateMousePos=function(c,b){var a=Common_FindPosition(this.HtmlElement.Board.Control.HtmlElement);return{X:c-a.X,Y:b-a.Y}};CDrawingBoard.prototype.private_UpdateKoeffs=function(){var e=this.m_oLogicBoard.Get_Size();var f=e.X,d=e.Y;this.m_oViewPort.X0=Math.max(0,Math.min(f-1,this.m_oViewPort.X0));this.m_oViewPort.Y0=Math.max(0,Math.min(d-1,this.m_oViewPort.Y0));this.m_oViewPort.X1=Math.max(0,Math.min(f-1,this.m_oViewPort.X1));this.m_oViewPort.Y1=Math.max(0,Math.min(d-1,this.m_oViewPort.Y1));if(this.m_oViewPort.X1<=this.m_oViewPort.X0){this.m_oViewPort.X0=0;this.m_oViewPort.X1=f-1}if(this.m_oViewPort.Y1<=this.m_oViewPort.Y0){this.m_oViewPort.Y0=0;this.m_oViewPort.Y1=d-1}var c=(this.m_oViewPort.X1-this.m_oViewPort.X0)*g_dBoardCellW+2*g_dBoardHorOffset;var g=(this.m_oViewPort.Y1-this.m_oViewPort.Y0)*g_dBoardCellW+2*g_dBoardHorOffset;var a=g_dBoardHorOffset;var b=g_dBoardHorOffset;if(true===this.m_bRulers){c+=g_dBoardCellW;g+=g_dBoardCellW;a+=g_dBoardCellW_2;b+=g_dBoardCellW_2}if(this.m_oViewPort.X0>0){c+=g_dBoardCellW_2/2;a+=g_dBoardCellW_2/2}if(this.m_oViewPort.X1<f-1){c+=g_dBoardCellW_2/2}if(this.m_oViewPort.Y0>0){g+=g_dBoardCellW_2/2;b+=g_dBoardCellW_2/2}if(this.m_oViewPort.Y1<d-1){g+=g_dBoardCellW_2/2}this.m_dKoeffCellH=g_dBoardCellW/g;this.m_dKoeffCellW=g_dBoardCellW/c;this.m_dKoeffOffsetX=a/c;this.m_dKoeffOffsetY=b/g;this.m_dKoeffDiam=4/c};CDrawingBoard.prototype.private_OnResize=function(c){var a=this.HtmlElement.Board.Control.HtmlElement.width;var b=this.HtmlElement.Board.Control.HtmlElement.height;if(a!=this.m_oImageData.W||b!=this.m_oImageData.H||null===this.m_oImageData.Board||null!==this.m_oCreateWoodyId||true===c){if(null!==this.m_oCreateWoodyId){clearTimeout(this.m_oCreateWoodyId)}this.m_oCreateWoodyId=this.private_StartDrawingTimer();this.private_CreateLines();this.private_DrawSimpleBoard(a,b)}else{this.private_DrawTrueColorFullBoard()}if(EBoardMode.ViewPort===this.m_eMode){this.private_UpdateSelectCanvas()}};CDrawingBoard.prototype.private_DrawSimpleBoard=function(e,m){if(0===e||0===m){return}if(null!==this.m_oImageData.ResizeBoard){var u=this.HtmlElement.Board.Control.HtmlElement.getContext("2d");u.drawImage(this.m_oImageData.ResizeBoard,0,0,e,m);return}var t=this.HtmlElement.Board.Control.HtmlElement.getContext("2d");t.fillStyle=this.private_GetSettings_BoardColor().ToString();t.fillRect(0,0,e,m);var x=this.HtmlElement.Lines.Control.HtmlElement.getContext("2d");var h=this.m_dKoeffCellW*e;var r=this.m_dKoeffCellH*m;var w=this.m_dKoeffOffsetX*e-this.m_oViewPort.X0*h;var v=this.m_dKoeffOffsetY*m-this.m_oViewPort.Y0*r;var j=this.m_oLogicBoard.Get_Size();x.clearRect(0,0,e,m);x.strokeStyle=this.private_GetSettings_LinesColor().ToString();var B=w,y=B+(j.X-1)*h;for(var o=0;o<j.Y;o++){var s=v+o*r;x.beginPath();x.moveTo(B,s);x.lineTo(y,s);x.stroke()}var i=v,g=i+(j.Y-1)*r;for(var q=0;q<j.X;q++){var b=w+q*h;x.beginPath();x.moveTo(b,i);x.lineTo(b,g);x.stroke()}x.fillStyle=this.private_GetSettings_LinesColor().ToString();var d=Math.max(2,this.m_dKoeffDiam*e/2);var l=this.m_oLogicBoard.Get_HandiPoints();for(var k=0,p=l.length;k<p;k++){var f=w+l[k][0]*h;var c=v+l[k][1]*h;x.beginPath();x.arc(f,c,d,0,2*Math.PI,false);x.fill()}var a=this.HtmlElement.Stones.Control.HtmlElement.getContext("2d");a.clearRect(0,0,e,m);a.strokeStyle=this.private_GetSettings_LinesColor().ToString();a.lineWidth=1;var A=(new CColor(0,0,0,255)).ToString();var n=(new CColor(255,255,255,255)).ToString();for(var o=1;o<=j.Y;o++){for(var q=1;q<=j.X;q++){var z=this.m_oLogicBoard.Get(q,o);if(BOARD_BLACK===z){a.fillStyle=A}else{if(BOARD_WHITE===z){a.fillStyle=n}else{continue}}var f=w+(q-1)*h;var c=v+(o-1)*r;a.beginPath();a.arc(f,c,h/2,0,Math.PI*2,false);a.fill();a.stroke()}}this.HtmlElement.Shadow.Control.HtmlElement.getContext("2d").clearRect(0,0,e,m);this.HtmlElement.Variants.Control.HtmlElement.getContext("2d").clearRect(0,0,e,m);this.HtmlElement.Marks.Control.HtmlElement.getContext("2d").clearRect(0,0,e,m);this.HtmlElement.Target.Control.HtmlElement.getContext("2d").clearRect(0,0,e,m);this.HtmlElement.Select.Control.HtmlElement.getContext("2d").clearRect(0,0,e,m)};CDrawingBoard.prototype.private_CreateTrueColorBoard=function(){var c=this.HtmlElement.Board.Control.HtmlElement.width;var m=this.HtmlElement.Board.Control.HtmlElement.height;var q=this.HtmlElement.Board.Control.HtmlElement.getContext("2d");if(0===c||0===m){return}var B=q.createImageData(c,m);var z=0.9;var C=this.private_GetSettings_BoardColor();var s=C.r;var u=C.g;var d=C.b;var a=100/c;var k=16/10,h=136/50,e=2432/150;var t=new Array(c);for(var v=0,l=0;v<c;v++,l+=a){t[v]=0.6+k*l+h*l*l*l+e*l*l*l*l*l}var n=new Array(m);var x=1/m;k=0.02,h=0.02/5,e=0.04/15;for(var w=0,l=0;w<m;w++,l+=x){n[w]=k*l+h*l*l*l+e*l*l*l*l*l}var p,y,A;if(true===this.private_GetSettings_TrueColorBoard()){for(var w=0;w<m;w++){for(var v=0;v<c;v++){z=(t[v]+n[w])*40+0.5;z=z-Math.floor(z);if(z<0.2){z=1-z/2}else{if(z<0.4){z=1-(0.4-z)/2}else{z=1}}if(w==m-1||(w==m-2&&v<c-2)||v>=c-1||(v==c-2&&w<m-1)){z=z/2}if(w==0||(w==1&&v>1)||v==0||(v==1&&w>1)){p=128+s*z/2;y=128+u*z/2;A=128+d*z/2}else{p=s*z;y=u*z;A=d*z}var o=(v+w*c)*4;B.data[o+0]=p;B.data[o+1]=y;B.data[o+2]=A;B.data[o+3]=255}}}else{for(var w=0;w<m;w++){for(var v=0;v<c;v++){if(w==0||(w==1&&v>1)||v==0||(v==1&&w>1)){p=128+s/2;y=128+u/2;A=128+d/2}else{p=s;y=u;A=d}var o=(v+w*c)*4;B.data[o+0]=p;B.data[o+1]=y;B.data[o+2]=A;B.data[o+3]=255}}}this.m_oImageData.Board=B;this.m_oImageData.W=c;this.m_oImageData.H=m;this.m_oCreateWoodyId=null};CDrawingBoard.prototype.private_DrawTrueColorFullBoard=function(){this.private_DrawTrueColorBoard();this.private_DrawRulers();this.private_DrawTrueColorLines();this.private_RedrawTrueColorAllStones();this.private_DrawAllColorMarks();this.private_DrawMarks();this.private_DrawVariants()};CDrawingBoard.prototype.private_DrawTrueColorBoard=function(){var a=this.HtmlElement.Board.Control.HtmlElement.getContext("2d");a.putImageData(this.m_oImageData.Board,0,0)};CDrawingBoard.prototype.private_CreateLines=function(){var f=this.m_oImageData.W;var n=this.m_oImageData.H;if(0===f||0===n){return}var l=this.m_dKoeffOffsetX*f;var a=this.m_dKoeffOffsetY*n;var r=this.m_dKoeffCellH*n;var g=this.m_dKoeffCellW*f;var i=this.m_oLogicBoard.Get_Size();var u=Math.max(i.X,i.Y);var h=new Array(i.X);var j=l-g*this.m_oViewPort.X0;var o=a-r*this.m_oViewPort.Y0;var d,c,p,b,k,B,w,z,m,s;for(var q=0;q<u;q++){d=j+q*g;p=j+q*g+0.6*g;k=j+q*g-0.6*g;w=j+q*g+0.5*g;m=j+q*g-0.5*g;c=o+q*r;b=o+q*r+0.6*r;B=o+q*r-0.6*r;z=o+q*r+0.5*r;s=o+q*r-0.5*r;h[q]={X:Math.floor(d+0.5),X_G:Math.floor(p+0.5),X_L:Math.floor(k+0.5),X_G2:Math.floor(w+0.5),X_L2:Math.floor(m+0.5),Y:Math.floor(c+0.5),Y_G:Math.floor(b+0.5),Y_L:Math.floor(B+0.5),Y_G2:Math.floor(z+0.5),Y_L2:Math.floor(s+0.5)}}this.m_oImageData.Lines=h;var e=this.m_dKoeffDiam*f/2;var t=Math.max(2,Math.ceil(e));var y=t*2+1;var x=t;var v=t;var A=this.private_GetSettings_LinesColor();this.m_oImageData.Handi=this.private_DrawHandiMark(x,v,t,y+2,y+2,A);this.m_oImageData.HandiRad=t+1};CDrawingBoard.prototype.private_DrawTrueColorLines=function(w){if(!this.m_oImageData.Lines){return}var d=this.m_oImageData.W;var p=this.m_oImageData.H;var A=this.HtmlElement.Lines.Control.HtmlElement.getContext("2d");var j=this.m_oLogicBoard.Get_Size();var h=this.m_oImageData.Lines;A.clearRect(0,0,d,p);var q=this.m_oImageData.Handi;var y=this.m_oImageData.HandiRad;var m=this.m_oLogicBoard.Get_HandiPoints();for(var l=0,x=m.length;l<x;l++){if(true===this.private_IsPointInViewPort(m[l][0],m[l][1])){var e=h[m[l][0]].X-y;var c=h[m[l][1]].Y-y;A.putImageData(q,e,c)}}var E=0===this.m_oViewPort.X0?h[this.m_oViewPort.X0].X:h[this.m_oViewPort.X0].X_L;var C=j.X-1===this.m_oViewPort.X1?h[this.m_oViewPort.X1].X:h[this.m_oViewPort.X1].X_G;var t=0===this.m_oViewPort.Y0?h[this.m_oViewPort.Y0].Y:h[this.m_oViewPort.Y0].Y_L;var r=j.Y-1===this.m_oViewPort.Y1?h[this.m_oViewPort.Y1].Y:h[this.m_oViewPort.Y1].Y_G;var k=A.createImageData(1,p);var D=A.createImageData(d,1);var f=this.private_GetSettings_LinesColor();for(var z=0;z<p;z++){var v=z*4;if(z>=t&&z<=r){k.data[v+0]=f.r;k.data[v+1]=f.g;k.data[v+2]=f.b;k.data[v+3]=f.a}}for(var z=0;z<d;z++){var v=z*4;if(E<=z&&z<=C){D.data[v+0]=f.r;D.data[v+1]=f.g;D.data[v+2]=f.b;D.data[v+3]=f.a}}for(var u=0;u<j.X;u++){if(true===this.private_IsVerLineInViewPort(u)){A.putImageData(k,h[u].X,0)}}for(var s=0;s<j.Y;s++){if(true===this.private_IsHorLineInViewPort(s)){A.putImageData(D,0,h[s].Y)}}if(undefined!==w){var B=h[1].X-h[0].X+2;var g=h[1].Y-h[0].Y+2;for(var v=0,x=w.length;v<x;v++){var b=w[v].X;var a=w[v].Y;if(true===this.private_IsPointInViewPort(b-1,a-1)){if(BOARD_EMPTY===this.m_oLogicBoard.Get(b,a)){var o=h[b-1].X_L2;var n=h[a-1].Y_L2;A.clearRect(o,n,B,g)}}}}};CDrawingBoard.prototype.private_DrawHandiMark=function(k,g,b,l,v,C){var p=document.createElement("canvas").getContext("2d");var B=p.createImageData(l,v);var f=B.data;var c=0.8;var A=l;var o=Math.max(A/2,2);var D=A/2-0.5;var n=D-0.2;for(var t=0;t<A;t++){for(var s=0;s<A;s++){var z=t-D;var u=s-D;var a=n-Math.sqrt(z*z+u*u);var m=(t*A+A-s-1)*4;if(a>=0){var e=255;if(a<=c){var q=(c-a)/c;e=parseInt((1-q)*255)}f[m+0]=C.r;f[m+1]=C.g;f[m+2]=C.b;f[m+3]=e}else{f[m+0]=0;f[m+1]=0;f[m+2]=0;f[m+3]=0}}}return B};CDrawingBoard.prototype.private_PutPixel=function(i,a,g,e,b,c,d){var f=(a+g*b)*4;i.data[f+0]=d.r;i.data[f+1]=d.g;i.data[f+2]=d.b;i.data[f+3]=e};CDrawingBoard.prototype.private_PutHorLine=function(d,c,a,e,g,j,f,b){for(var i=c;i<=a;i++){this.private_PutPixel(d,i,g,e,j,f,b)}};CDrawingBoard.prototype.private_PutVerLine=function(b,g,f,c,i,j,d,a){for(var e=g;e<=f;e++){this.private_PutPixel(b,i,e,c,j,d,a)}};CDrawingBoard.prototype.private_CreateTrueColorStones=function(V){if(!this.m_oImageData.Lines){return}var h=this.HtmlElement.Board.Control.HtmlElement.width;var n=this.HtmlElement.Board.Control.HtmlElement.height;var v=0.8,D=0.7;var k=this.HtmlElement.Stones.Control.HtmlElement.getContext("2d");var O=(V?V:Math.floor(this.m_dKoeffCellW*h));var U=Math.floor(O/2)*2+1;this.m_oImageData.StoneDiam=U;this.m_oTarget.Update_Size(U);this.m_oImageData.BlackStone=k.createImageData(U,U);this.m_oImageData.WhiteStone=k.createImageData(U,U);this.m_oImageData.BlackTarget=k.createImageData(U,U);this.m_oImageData.WhiteTarget=k.createImageData(U,U);var e=this.m_oImageData.BlackStone.data;var m=this.m_oImageData.WhiteStone.data;var c=this.m_oImageData.BlackTarget.data;var l=this.m_oImageData.WhiteTarget.data;var L=this.private_GetSettings_WhiteColor();var B=this.private_GetSettings_BlackColor();var u=this.private_GetSettings_DarkBoard();if(true===this.private_GetSettings_TrueColorStones()){var N=U/2-0.5;var M=N-0.2;var T=Math.sqrt(3);for(var R=0;R<U;R++){for(var Q=0;Q<U;Q++){var p=R-N;var o=Q-N;var aa=M-Math.sqrt(p*p+o*o);var s=(R*U+U-Q-1)*4;if(aa>=0){var F=M*M-p*p-o*o;if(F>0){F=Math.sqrt(F)*T}else{F=0}var I=p;var G=o;var C=Math.sqrt(6*(I*I+G*G+F*F));C=(2*F-I+G)/C;var K=0;if(C>0.9){K=(C-0.9)*10}var P=255;if(aa<=v){aa=(v-aa)/v;var q=D;if(p-o<M/3){q=1}P=parseInt((1-aa*q)*255)}var S=parseInt(10+10*C+K*140);e[s+0]=S;e[s+1]=S;e[s+2]=S;e[s+3]=P;c[s+0]=S;c[s+1]=S;c[s+2]=S;c[s+3]=parseInt(P/2);S=parseInt(200+10*C+K*45);m[s+0]=S;m[s+1]=S;m[s+2]=S;m[s+3]=P;l[s+0]=S;l[s+1]=S;l[s+2]=S;l[s+3]=parseInt(P/2)}else{e[s+0]=0;e[s+1]=0;e[s+2]=0;e[s+3]=0;c[s+0]=0;c[s+1]=0;c[s+2]=0;c[s+3]=0;m[s+0]=0;m[s+1]=0;m[s+2]=0;m[s+3]=0;l[s+0]=0;l[s+1]=0;l[s+2]=0;l[s+3]=0}}}}else{var N=U/2-0.5;var M=N-0.2;for(var R=0;R<U;R++){for(var Q=0;Q<U;Q++){var p=R-N;var o=Q-N;var aa=M-Math.sqrt(p*p+o*o);var s=(R*U+U-Q-1)*4;if(aa>=0){var P=255;if(aa<=v){var Z=(v-aa)/v;var q=D;if(p-o<M/3){q=1}P=parseInt((1-Z*q)*255)}else{if(aa<=2*v&&aa>=v&&true===u){var Z=(2*v-aa)/(v);var q=D;if(p-o<M/3){q=1}P=parseInt(Z*q*255)}}var ab=false;if(aa<=2*v){ab=true}if(false===ab||false===u){e[s+0]=B.r;e[s+1]=B.g;e[s+2]=B.b;e[s+3]=P;c[s+0]=B.r;c[s+1]=B.g;c[s+2]=B.b;c[s+3]=parseInt(P/2)}else{e[s+0]=L.r;e[s+1]=L.g;e[s+2]=L.b;e[s+3]=P;c[s+0]=L.r;c[s+1]=L.g;c[s+2]=L.b;c[s+3]=P}P=255;if(aa<=v){var Z=(v-aa)/v;var q=D;if(p-o<M/3){q=1}P=parseInt((1-Z*q)*255)}else{if(aa<=2*v&&aa>=v&&false===u){var Z=(2*v-aa)/(v);var q=D;if(p-o<M/3){q=1}P=parseInt(Z*q*255)}}if(false===ab||true===u){m[s+0]=L.r;m[s+1]=L.g;m[s+2]=L.b;m[s+3]=P;l[s+0]=L.r;l[s+1]=L.g;l[s+2]=L.b;l[s+3]=parseInt(P/2)}else{m[s+0]=B.r;m[s+1]=B.g;m[s+2]=B.b;m[s+3]=P;l[s+0]=B.r;l[s+1]=B.g;l[s+2]=B.b;l[s+3]=P}}else{e[s+0]=0;e[s+1]=0;e[s+2]=0;e[s+3]=0;c[s+0]=0;c[s+1]=0;c[s+2]=0;c[s+3]=0;m[s+0]=0;m[s+1]=0;m[s+2]=0;m[s+3]=0;l[s+0]=0;l[s+1]=0;l[s+2]=0;l[s+3]=0}}}}var t=new Array();var A=new Array();for(var s=0;s<28;s++){t[s]=k.createImageData(U,U);A[s]=t[s].data;for(var R=0;R<U;R++){for(var Q=0;Q<U;Q++){var J=(R*U+Q)*4;A[s][J+0]=m[J+0];A[s][J+1]=m[J+1];A[s][J+2]=m[J+2];A[s][J+3]=m[J+3]}}}A.push(l);A.push(m);if(true===this.private_GetSettings_ShellWhiteStones()){this.private_CreateShellWhiteStones(A,U,U)}this.m_oImageData.WhiteStones=t;var E=this.m_oLogicBoard.Get_Size();for(var a=0;a<E.Y;a++){for(var b=0;b<E.X;b++){var w=Math.floor(Math.random()*(this.m_oImageData.WhiteStones.length-1));this.m_oImageData.WhiteStones2[b+a*E.X]=w}}};CDrawingBoard.prototype.private_CreateShellWhiteStones=function(a,t,b){var g=(t/51*978)|0;var s=g;var u=0.9;var o=new Array(g);for(var p=0;p<g;p++){o[p]=(Math.sin(18*p/g)+1)/20+(Math.sin(3*p/g)+1)/10}var k=new Array(s);for(var q=0;q<s;q++){k[q]=0.2*Math.cos(5*q/s)+0.1*Math.sin(11*q/s)}var r=new Array(g*s);for(var q=0;q<s;q++){for(var p=0;p<g;p++){u=(o[p]+k[q])*90+0.5;u=u-Math.floor(u);if(u<0.2){u=1-u/2}else{if(u<0.4){u=1-(0.4-u)/2}else{u=1}}r[p+q*g]=u}}var n=0.8;var l=a.length;for(var m=0;m<l;m++){var v=a[m];var e,d;switch(m){case 0:e=(12*g/978)|0;d=(163*g/978)|0;break;case 1:e=(12*g/978)|0;d=(213*g/978)|0;break;case 2:e=(12*g/978)|0;d=(263*g/978)|0;break;case 3:e=(12*g/978)|0;d=(313*g/978)|0;break;case 4:e=(62*g/978)|0;d=(163*g/978)|0;break;case 5:e=(62*g/978)|0;d=(213*g/978)|0;break;case 6:e=(62*g/978)|0;d=(263*g/978)|0;break;case 7:e=(62*g/978)|0;d=(313*g/978)|0;break;case 8:e=(113*g/978)|0;d=(163*g/978)|0;break;case 9:e=(113*g/978)|0;d=(213*g/978)|0;break;case 10:e=(113*g/978)|0;d=(263*g/978)|0;break;case 11:e=(113*g/978)|0;d=(313*g/978)|0;break;case 12:e=(163*g/978)|0;d=(163*g/978)|0;break;case 13:e=(163*g/978)|0;d=(213*g/978)|0;break;case 14:e=(163*g/978)|0;d=(263*g/978)|0;break;case 15:e=(163*g/978)|0;d=(313*g/978)|0;break;case 16:e=(213*g/978)|0;d=(163*g/978)|0;break;case 17:e=(213*g/978)|0;d=(213*g/978)|0;break;case 18:e=(213*g/978)|0;d=(263*g/978)|0;break;case 19:e=(213*g/978)|0;d=(313*g/978)|0;break;case 20:e=(263*g/978)|0;d=(163*g/978)|0;break;case 21:e=(263*g/978)|0;d=(213*g/978)|0;break;case 22:e=(263*g/978)|0;d=(263*g/978)|0;break;case 23:e=(263*g/978)|0;d=(313*g/978)|0;break;case 24:e=(313*g/978)|0;d=(163*g/978)|0;break;case 25:e=(313*g/978)|0;d=(213*g/978)|0;break;case 26:e=(313*g/978)|0;d=(263*g/978)|0;break;case 27:e=(313*g/978)|0;d=(313*g/978)|0;break;case 28:e=(12*g/978)|0;d=(12*g/978)|0;break;case 29:e=(12*g/978)|0;d=(12*g/978)|0;break}for(var q=0;q<b;q++){for(var p=0;p<t;p++){u=r[e+p+(d+q)*g];var c=(p+q*t)*4;v[c+0]*=Math.pow(u,n);v[c+1]*=Math.pow(u,n);v[c+2]*=Math.pow(u,n)}}}};CDrawingBoard.prototype.private_RedrawTrueColorAllStones=function(){var a=this.m_oImageData.W;var b=this.m_oImageData.H;this.HtmlElement.Stones.Control.HtmlElement.getContext("2d").clearRect(0,0,a,b);this.HtmlElement.Shadow.Control.HtmlElement.getContext("2d").clearRect(0,0,a,b);this.m_oBoardPosition={};this.private_DrawTrueColorAllStones()};CDrawingBoard.prototype.private_DrawTrueColorAllStones=function(){var a=this.m_oLogicBoard.Get_Size();for(var b=1;b<=a.Y;b++){for(var c=1;c<=a.X;c++){this.Draw_Sector(c,b,this.m_oLogicBoard.Get(c,b))}}};CDrawingBoard.prototype.private_CreateShadows=function(){if(!this.m_oImageData.Lines){return}var e=this.HtmlElement.Shadow.Control.HtmlElement.getContext("2d");var l=this.m_oImageData.StoneDiam;this.m_oImageData.Shadow=e.createImageData(l,l);var b=this.m_oImageData.Shadow.data;this.m_oImageData.ShadowOff=Math.max(parseInt(l*0.15),3);var a=(l-5)/2+1;for(var h=0;h<l;h++){for(var g=0;g<l;g++){var n=Math.abs(h-a);var o=Math.abs(g-a);var m=Math.sqrt(o*o+n*n)/a;var k=(m<1?0.15+0.75*(1-m):0);var c=(l*h+g)*4;b[c+0]=0;b[c+1]=0;b[c+2]=0;b[c+3]=parseInt(255*k)}}};CDrawingBoard.prototype.Update_Target=function(){this.private_UpdateTargetType()};CDrawingBoard.prototype.private_UpdateTargetType=function(){var b=this.m_oTarget.Get_LogicPos();var d=b.Y;var e=b.X;if(false===this.private_IsPointInViewPort(e-1,d-1)){this.m_oTarget.Hide();return}var c=EBoardTargetType.Unknown;var a=this.m_oLogicBoard.Get(e,d);switch(this.m_eMode){case EBoardMode.Move:if(BOARD_EMPTY===a){if(BOARD_BLACK===this.m_oGameTree.Get_NextMove()){c=EBoardTargetType.BlackStone}else{c=EBoardTargetType.WhiteStone}}break;case EBoardMode.AddRemove:if(BOARD_BLACK===a){c=EBoardTargetType.WhiteX}else{if(BOARD_WHITE===a){c=EBoardTargetType.BlackX}else{if(global_mouseEvent.ShiftKey){c=EBoardTargetType.WhiteStone}else{c=EBoardTargetType.BlackStone}}}break;case EBoardMode.AddMarkColor:if(global_mouseEvent.CtrlKey&&!global_mouseEvent.ShiftKey){c=EBoardTargetType.ColorR}else{if(!global_mouseEvent.CtrlKey&&global_mouseEvent.ShiftKey){c=EBoardTargetType.ColorG}else{if(global_mouseEvent.CtrlKey&&global_mouseEvent.ShiftKey){c=EBoardTargetType.ColorA}else{c=EBoardTargetType.ColorB}}}break;default:if(BOARD_BLACK===a||(BOARD_EMPTY===a&&true===this.private_GetSettings_DarkBoard())){c=EBoardTargetType.WhiteX}else{c=EBoardTargetType.BlackX}break}if(EBoardTargetType.Unknown==c||!this.m_oGameTree.Get_LocalSettings().Is_ShowTarget()){this.m_oTarget.Hide()}else{this.m_oTarget.Set_Type(c)}};CDrawingBoard.prototype.private_MoveTarget=function(f,b,g,k){if(false===this.private_IsPointInViewPort(f-1,b-1)){this.m_oTarget.Hide();return}if(null!==this.m_oCreateWoodyId||null===this.m_oImageData.Lines){return}if(undefined===k){k=false}if(false===this.m_oTarget.Check_LogicPos(f,b,k)){if(EBoardMode.AddMarkColor===this.m_eMode&&this.m_bMouseDown&&!k){this.private_AddColorMark(f,b,g)}var h=this.m_oImageData.StoneDiam;var i=(h-1)/2;var j=this.m_oImageData.Lines;var c=j[f-1].X-i;var a=j[b-1].Y-i;this.m_oTarget.Show();this.m_oTarget.Set_Pos(c,a);this.private_UpdateTargetType()}};CDrawingBoard.prototype.private_HideTarget=function(){this.m_oTarget.Hide()};CDrawingBoard.prototype.private_GetBoardPosByXY=function(c,a){var f=this.m_oImageData.W;var k=this.m_oImageData.H;var g=this.m_dKoeffCellH*k;var i=this.m_dKoeffCellW*f;var e=this.m_dKoeffOffsetX*f-g*this.m_oViewPort.X0;var h=this.m_dKoeffOffsetY*k-i*this.m_oViewPort.Y0;var b=0;var j=this.m_oLogicBoard.Get_Size();for(b=0;b<j.Y-1;b++){if(a>h+g*b+g/2){continue}else{break}}var d=0;for(d=0;d<j.X-1;d++){if(c>e+i*d+i/2){continue}else{break}}d=Math.max(this.m_oViewPort.X0,Math.min(this.m_oViewPort.X1,d));b=Math.max(this.m_oViewPort.Y0,Math.min(this.m_oViewPort.Y1,b));return{X:d+1,Y:b+1}};CDrawingBoard.prototype.private_GetXYByBoardPos=function(f,e){var a=this.m_oImageData.W;var b=this.m_oImageData.H;var d=this.m_dKoeffCellH*b;var c=this.m_dKoeffCellW*a;return{X:this.m_dKoeffOffsetX*a+(f-1)*c,Y:this.m_dKoeffOffsetY*b+(e-1)*d}};CDrawingBoard.prototype.private_CreateMarks=function(){if(!this.m_oImageData.Lines){return}var a=this.private_GetSettings_TrueColorBoard();var b=this.private_GetSettings_DarkBoard();var c=this.m_oImageData.StoneDiam;this.m_oImageData.X_Black=this.private_DrawX(c,c,c*0.05,new CColor(0,0,0,255));this.m_oImageData.X_White=this.private_DrawX(c,c,c*0.05,new CColor(255,255,255,255));this.m_oImageData.Tr_Black=this.private_DrawTriangle(c,c,c*0.05,new CColor(0,0,0,255));this.m_oImageData.Tr_White=this.private_DrawTriangle(c,c,c*0.05,new CColor(255,255,255,255));this.m_oImageData.Tr_Hint=this.private_DrawTriangle(c,c,c*0.05,new CColor(255,0,0,255));this.m_oImageData.Sq_Black=this.private_DrawEmptySquare(c,c,c*0.05,new CColor(0,0,0,255));this.m_oImageData.Sq_White=this.private_DrawEmptySquare(c,c,c*0.05,new CColor(255,255,255,255));this.m_oImageData.Ter_Black=this.private_DrawFilledSquare(c,c,c*0.05,false,new CColor(0,0,0,255),a?new CColor(0,0,0,255):b?new CColor(255,255,255,255):new CColor(0,0,0,255));this.m_oImageData.Ter_White=this.private_DrawFilledSquare(c,c,c*0.05,false,new CColor(255,255,255,255),a?new CColor(255,255,255,255):b?new CColor(255,255,255,255):new CColor(0,0,0,255));this.m_oImageData.Ter_Black2=this.private_DrawFilledSquare(c,c,c*0.05,true,new CColor(0,0,0,255),a?new CColor(0,0,0,255):b?new CColor(255,255,255,255):new CColor(0,0,0,255));this.m_oImageData.Ter_White2=this.private_DrawFilledSquare(c,c,c*0.05,true,new CColor(255,255,255,255),a?new CColor(255,255,255,255):b?new CColor(255,255,255,255):new CColor(0,0,0,255));this.m_oImageData.LastMove=this.private_DrawCircle(c,c,c*0.05,new CColor(255,0,0,255));this.m_oImageData.Cr_Black=this.private_DrawCircle(c,c,c*0.05,new CColor(0,0,0,255));this.m_oImageData.Cr_White=this.private_DrawCircle(c,c,c*0.05,new CColor(255,255,255,255));this.m_oImageData.RcolorTarget=this.private_DrawEmptySquare(c,c,c*0.05,new CColor(200,0,0,255));this.m_oImageData.GcolorTarget=this.private_DrawEmptySquare(c,c,c*0.05,new CColor(0,128,0,255));this.m_oImageData.BcolorTarget=this.private_DrawEmptySquare(c,c,c*0.05,new CColor(0,0,200,255));this.m_oImageData.AcolorTarget=this.private_DrawEmptySquare(c,c,c*0.05,new CColor(128,128,128,255))};CDrawingBoard.prototype.private_DrawX=function(a,b,d,e){var c=this.HtmlElement.Marks.Control.HtmlElement.getContext("2d");c.clearRect(0,0,a,b);c.strokeStyle=e.ToString();c.fillStyle=e.ToString();c.lineWidth=d;c.beginPath();c.moveTo(a*1/4,b*1/4);c.lineTo(a*3/4,b*3/4);c.moveTo(a*3/4,b*1/4);c.lineTo(a*1/4,b*3/4);c.stroke();return c.getImageData(0,0,a,b)};CDrawingBoard.prototype.private_DrawTriangle=function(f,k,e,b,c){if(undefined===c){c=1}var g=this.HtmlElement.Marks.Control.HtmlElement.getContext("2d");g.clearRect(0,0,f,k);g.globalAlpha=c;g.strokeStyle=b.ToString();g.fillStyle=b.ToString();g.lineWidth=e;var a=f/2;var h=k*3/4;var d=f*0.1;var j=Math.sqrt(a*a-(h-a)*(h-a))+a;var i=-Math.sqrt(a*a-(h-a)*(h-a))+a;g.beginPath();g.moveTo(f/2,d);g.lineTo(j-d,h);g.lineTo(i+d,h);g.closePath();g.stroke();return g.getImageData(0,0,f,k)};CDrawingBoard.prototype.private_DrawEmptySquare=function(c,h,e,w){var d=this.HtmlElement.Marks.Control.HtmlElement.getContext("2d");d.clearRect(0,0,c,h);d.strokeStyle=w.ToString();d.fillStyle=w.ToString();d.lineWidth=Math.floor(e+0.5);var l=c/2;var s=e;var o=-h/2*Math.sqrt(2)/2+h/2;var n=h/2*Math.sqrt(2)/2+h/2;var g=-Math.sqrt(l*l-(o-l)*(o-l))+l;var f=+Math.sqrt(l*l-(o-l)*(o-l))+l;var u=Math.floor(g);var t=Math.ceil(f);var b=Math.ceil(o);var a=Math.floor(n);var m=Math.floor(e);var v=d.createImageData(c,h);for(var q=0;q<h;q++){for(var p=0;p<c;p++){var k=(q*c+p)*4;if((((u<=p&&p<=u+m)||(t-m<=p&&p<=t))&&b<=q&&q<=a)||(((b<=q&&q<=b+m)||(a-m<=q&&q<=a))&&u<=p&&p<=t)){v.data[k+0]=w.r;v.data[k+1]=w.g;v.data[k+2]=w.b;v.data[k+3]=255}else{v.data[k+0]=0;v.data[k+1]=0;v.data[k+2]=0;v.data[k+3]=0}}}return v};CDrawingBoard.prototype.private_DrawFilledSquare=function(d,q,b,p,a,o){var m=this.HtmlElement.Marks.Control.HtmlElement.getContext("2d");var c=m.createImageData(d,q);var h=p?q/4|0:q/3|0;var l=p?q*3/4|0:q*2/3|0;var n=p?d/4|0:d/3|0;var e=p?d*3/4|0:d*2/3|0;for(var k=0;k<q;k++){for(var g=0;g<d;g++){var f=(k*d+g)*4;if(((k===h||k===l)&&g>=n&&g<=e)||((g===n||g===e)&&k>=h&&k<=l)){c.data[f+0]=o.r;c.data[f+1]=o.g;c.data[f+2]=o.b;c.data[f+3]=255}else{if(k>h&&k<l&&g>n&&g<e){c.data[f+0]=a.r;c.data[f+1]=a.g;c.data[f+2]=a.b;c.data[f+3]=255}else{c.data[f+3]=0}}}}return c};CDrawingBoard.prototype.private_DrawCircle=function(a,c,e,g){var d=this.HtmlElement.Marks.Control.HtmlElement.getContext("2d");d.clearRect(0,0,a,c);var f=a/2;var b=e*4;d.strokeStyle=g.ToString();d.fillStyle=g.ToString();d.lineWidth=e;d.beginPath();d.arc(a/2,c/2,f-b,0,2*Math.PI,false);d.stroke();return d.getImageData(0,0,a,c)};CDrawingBoard.prototype.private_DrawRulers=function(){if(true===this.m_bRulers&&this.m_oImageData.Lines){var i=this.HtmlElement.Board.Control.HtmlElement.getContext("2d");var f=this.m_oImageData.W;var o=this.m_oImageData.H;var m=this.m_oLogicBoard.Get_Size();var v=2*this.m_oImageData.StoneDiam/3;var j=(v-1)/2;var k=this.m_oImageData.Lines;var h=2*v/3;var a=this.private_GetSettings_DarkBoard();if(a){i.fillStyle="rgb(255,255,255)"}else{i.fillStyle="rgb(0,0,0)"}var l=h+"px Arial";var x=h+"px Helvetica, Arial, Verdana";for(var e=this.m_oViewPort.X0;e<=this.m_oViewPort.X1;e++){var p=k[e].X-j;var n=this.m_dKoeffOffsetY*o/3-j;var u=e+1;var s=u<10?"0"+u:""+u;var w=Common_X_to_String(u,m.X);var t=v/2+h/3;var r=(v-i.measureText(s).width)/2;i.font=l;i.fillText(s,p+r,n+t);n=o-this.m_dKoeffOffsetY*o/3-j;r=(v-i.measureText(w).width)/2;i.font=x;i.fillText(w,p+r,n+t)}for(var c=this.m_oViewPort.Y0;c<=this.m_oViewPort.Y1;c++){var p=this.m_dKoeffOffsetX*f/3-j;var n=k[c].Y-j;var b=c+1;var g=b<10?"0"+b:""+b;var q=Common_X_to_String(b,m.Y);var t=v/2+h/3;var r=(v-i.measureText(g).width)/2;i.font=l;i.fillText(g,p+r,n+t);p=f-this.m_dKoeffOffsetX*f/3-j;var r=(v-i.measureText(q).width)/2;i.fillText(q,p+r,n+t)}}};CDrawingBoard.prototype.private_GetMark=function(c,b){var a=this.m_oMarks[""+Common_XYtoValue(c,b)];if(undefined!==a){return a}return null};CDrawingBoard.prototype.private_SetMark=function(c,b,a){if(EDrawingMark.Lm===a.Get_Type()){this.private_SetLastMoveMark(c,b)}else{this.m_oMarks[""+Common_XYtoValue(c,b)]=a}};CDrawingBoard.prototype.private_SetLastMoveMark=function(c,b){if(c<=0||b<=0){this.m_oLastMoveMark=0;return}var a=Common_XYtoValue(c,b);if(undefined===this.m_oMarks[""+a]){this.m_oMarks[""+a]=new CDrawingMark(c,b,EDrawingMark.Lm,"")}this.m_oLastMoveMark=a};CDrawingBoard.prototype.private_DrawMarks=function(){var e=this.HtmlElement.Marks.Control.HtmlElement.getContext("2d");var b=this.m_oImageData.W;var d=this.m_oImageData.H;e.clearRect(0,0,b,d);var a=new Array();for(var f in this.m_oMarks){var g=this.m_oMarks[f];if(undefined===this.m_oHints[f]){this.private_DrawMark(g);if(EDrawingMark.Tx===g.Get_Type()){a.push({X:g.Get_X(),Y:g.Get_Y()})}}}for(var f in this.m_oHints){var c=Common_ValuetoXY(f);this.private_DrawHint(c.X,c.Y);a.push({X:c.X,Y:c.Y})}this.private_DrawTrueColorLines(a)};CDrawingBoard.prototype.private_DrawMark=function(o){if(!this.m_oImageData.Lines){return}var c=o.Get_X();var b=o.Get_Y();var i=o.Get_Type();var f=this.HtmlElement.Marks.Control.HtmlElement.getContext("2d");var a=this.private_GetSettings_DarkBoard();if(true===this.private_IsPointInViewPort(c-1,b-1)){var r=this.m_oImageData.StoneDiam;var h=(r-1)/2;var j=this.m_oImageData.Lines;var l=j[c-1].X-h;var k=j[b-1].Y-h;var s=this.m_oLogicBoard.Get(c,b);switch(i){case EDrawingMark.Tb:f.putImageData(this.m_oImageData.Ter_Black,l,k);break;case EDrawingMark.Tw:f.putImageData(this.m_oImageData.Ter_White,l,k);break;case EDrawingMark.Tb2:f.putImageData(this.m_oImageData.Ter_Black2,l,k);break;case EDrawingMark.Tw2:f.putImageData(this.m_oImageData.Ter_White2,l,k);break;case EDrawingMark.Lm:if(true===this.m_bBlackWhiteLastMark){if(BOARD_BLACK===s){f.putImageData(this.m_oImageData.Cr_White,l,k)}else{f.putImageData(this.m_oImageData.Cr_Black,l,k)}}else{f.putImageData(this.m_oImageData.LastMove,l,k)}break;case EDrawingMark.Cr:f.putImageData(s===BOARD_BLACK||(s==BOARD_EMPTY&&true==a)?this.m_oImageData.Cr_White:this.m_oImageData.Cr_Black,l,k);break;case EDrawingMark.Sq:f.putImageData(s===BOARD_BLACK||(s==BOARD_EMPTY&&true==a)?this.m_oImageData.Sq_White:this.m_oImageData.Sq_Black,l,k);break;case EDrawingMark.Tr:f.putImageData(s===BOARD_BLACK||(s==BOARD_EMPTY&&true==a)?this.m_oImageData.Tr_White:this.m_oImageData.Tr_Black,l,k);break;case EDrawingMark.X:f.putImageData(s===BOARD_BLACK||(s==BOARD_EMPTY&&true==a)?this.m_oImageData.X_White:this.m_oImageData.X_Black,l,k);break;case EDrawingMark.Tx:var q=o.Get_Text();var e=(q.length<=2?2*r/3:r/2);var g=(Common_IsInt(q)?"Arial":"Helvetica, Arial, Verdana");var p=e+"px "+g;f.fillStyle=s===BOARD_BLACK||(s==BOARD_EMPTY&&true==a)?"rgb(255,255,255)":"rgb(0,0,0)";f.font=p;var n=r/2+e/3;var m=(r-f.measureText(q).width)/2;f.fillText(q,l+m,k+n);break}}};CDrawingBoard.prototype.private_DrawHint=function(i,h){if(!this.m_oImageData.Lines){return}var c=this.HtmlElement.Marks.Control.HtmlElement.getContext("2d");if(true===this.private_IsPointInViewPort(i-1,h-1)){var g=this.m_oImageData.StoneDiam;var f=(g-1)/2;var e=this.m_oImageData.Lines;var b=e[i-1].X-f;var a=e[h-1].Y-f;c.putImageData(this.m_oImageData.Tr_Hint,b,a)}};CDrawingBoard.prototype.private_ClearMark=function(e,b){if(!this.m_oImageData.Lines){return}if(true===this.private_IsPointInViewPort(e-1,b-1)){var h=this.m_oImageData.StoneDiam;var i=(h-1)/2;var j=this.m_oImageData.Lines;var c=j[e-1].X-i;var a=j[b-1].Y-i;var f=this.HtmlElement.Marks.Control.HtmlElement.getContext("2d");f.clearRect(c,a,i*2,i*2);var g=Common_ValuetoXY(this.m_oLastMoveMark);if(e===g.X&&b===g.Y){this.private_SetLastMoveMark(e,b);this.private_DrawMark(this.private_GetMark(e,b))}}};CDrawingBoard.prototype.Draw_AllColorMarks=function(){this.private_DrawAllColorMarks()};CDrawingBoard.prototype.Clear_AllColorMarks=function(){this.private_ClearAllColorMarks()};CDrawingBoard.prototype.private_DrawAllColorMarks=function(){for(var b in this.m_oColorMarks){var a=Common_ValuetoXY(b);this.private_DrawColorMark(a.X,a.Y)}};CDrawingBoard.prototype.private_ClearAllColorMarks=function(){for(var b in this.m_oColorMarks){var a=Common_ValuetoXY(b);this.private_ClearColorMark(a.X,a.Y)}this.m_oColorMarks={}};CDrawingBoard.prototype.private_AddColorMark=function(i,h,f){var g=Common_XYtoValue(i,h);if(g_mouse_button_right===f.Button){if(undefined!==this.m_oColorMarks[g]){delete this.m_oColorMarks[g];this.private_ClearColorMark(i,h);this.m_oGameTree.Remove_ColorMark(i,h)}}else{var d;if(f.CtrlKey&&!f.ShiftKey){d=new CColor(200,0,0,50)}else{if(f.ShiftKey&&!f.CtrlKey){d=new CColor(0,100,0,50)}else{if(f.ShiftKey&&f.CtrlKey){d=new CColor(80,80,80,50)}else{d=new CColor(0,0,200,50)}}}if(undefined!==this.m_oColorMarks[g]){var c=this.m_oColorMarks[g];if(d.r===c.r&&d.g===c.g&&d.b===c.b){var b=c.a;if(b<50){b=50}else{if(b<100){b=100}else{if(b<150){b=150}else{b=200}}}this.m_oColorMarks[g].a=b}else{this.m_oColorMarks[g]=d}}else{this.m_oColorMarks[g]=d}this.private_DrawColorMark(i,h);this.m_oGameTree.Add_ColorMark(i,h,this.m_oColorMarks[g])}};CDrawingBoard.prototype.private_DrawColorMark=function(c,b){this.private_ClearColorMark(c,b);var a=this.HtmlElement.Colors.Control.HtmlElement.getContext("2d");var d=this.m_oImageData.Lines;var f=c-1;var e=b-1;a.fillStyle=this.m_oColorMarks[Common_XYtoValue(c,b)].ToString();a.beginPath();a.moveTo(d[f].X_L2,d[e].Y_L2);a.lineTo(d[f].X_G2,d[e].Y_L2);a.lineTo(d[f].X_G2,d[e].Y_G2);a.lineTo(d[f].X_L2,d[e].Y_G2);a.closePath();a.fill()};CDrawingBoard.prototype.private_ClearColorMark=function(c,b){var a=this.HtmlElement.Colors.Control.HtmlElement.getContext("2d");var d=this.m_oImageData.Lines;var f=c-1;var e=b-1;a.clearRect(d[f].X_L2,d[e].Y_L2,d[f].X_G2-d[f].X_L2,d[e].Y_G2-d[e].Y_L2)};CDrawingBoard.prototype.private_HandleMouseDown=function(c,b,a){switch(this.m_eMode){case EBoardMode.Move:this.private_AddMove(c,b,a);break;case EBoardMode.AddRemove:this.private_AddOrRemoveStones(c,b,a);break;case EBoardMode.AddMarkTr:this.private_AddTriangle(c,b,a);break;case EBoardMode.AddMarkSq:this.private_AddSquare(c,b,a);break;case EBoardMode.AddMarkCr:this.private_AddCircle(c,b,a);break;case EBoardMode.AddMarkX:this.private_AddX(c,b,a);break;case EBoardMode.AddMarkTx:this.private_AddText(c,b,a);break;case EBoardMode.AddMarkNum:this.private_AddNum(c,b,a);break;case EBoardMode.AddMarkColor:this.private_AddColorMark(c,b,a);break;case EBoardMode.ViewPort:this.private_StartViewPortSelection(c,b,a);break}};CDrawingBoard.prototype.private_HandleMouseUp=function(c,b,a){if(EBoardMode.ViewPort===this.m_eMode){this.private_EndViewPortSelection(c,b)}this.private_UpdateSelectCanvas()};CDrawingBoard.prototype.private_HandleMouseMove=function(c,b,a){if(EBoardMode.ViewPort===this.m_eMode){this.private_MoveViewPortSelection(c,b)}this.private_UpdateSelectCanvas()};CDrawingBoard.prototype.private_StartViewPortSelection=function(c,b,a){this.m_oViewPortSelection.Start=true;this.m_oViewPortSelection.StartX=c;this.m_oViewPortSelection.StartY=b;this.m_oViewPortSelection.EndX=c;this.m_oViewPortSelection.EndY=b;this.private_UpdateSelectCanvas()};CDrawingBoard.prototype.private_MoveViewPortSelection=function(b,a){if(true===this.m_oViewPortSelection.Start){this.m_oViewPortSelection.EndX=b;this.m_oViewPortSelection.EndY=a}};CDrawingBoard.prototype.private_EndViewPortSelection=function(b,a){if(true===this.m_oViewPortSelection.Start){this.m_oViewPortSelection.Start=false;this.m_oViewPortSelection.EndX=b;this.m_oViewPortSelection.EndY=a}};CDrawingBoard.prototype.Set_ViewPortSelection=function(b,d,a,c){this.m_oViewPortSelection.StartX=b+1;this.m_oViewPortSelection.StartY=d+1;this.m_oViewPortSelection.EndX=a+1;this.m_oViewPortSelection.EndY=c+1;this.private_UpdateSelectCanvas()};CDrawingBoard.prototype.private_UpdateSelectCanvas=function(){if(EBoardMode.ViewPort===this.m_eMode){if(!this.m_oImageData.Lines||this.m_oViewPortSelection.StartX<=0||this.m_oViewPortSelection.StartY<=0||this.m_oViewPortSelection.EndX<=0||this.m_oViewPortSelection.EndY<=0){return}var b=this.m_oImageData.W;var h=this.m_oImageData.H;var g=this.m_oImageData.Lines;var f=this.HtmlElement.Select.Control.HtmlElement.getContext("2d");f.clearRect(0,0,b,h);var e=this.m_oViewPortSelection.StartX-1;var j=this.m_oViewPortSelection.StartY-1;var d=this.m_oViewPortSelection.EndX-1;var i=this.m_oViewPortSelection.EndY-1;if(e>d){var c=d;d=e;e=c}if(j>i){var c=i;i=j;j=c}var a=new CColor(107,112,122,128);f.fillStyle=a.ToString();f.beginPath();f.moveTo(g[e].X_L2,g[j].Y_L2);f.lineTo(g[d].X_G2,g[j].Y_L2);f.lineTo(g[d].X_G2,g[i].Y_G2);f.lineTo(g[e].X_L2,g[i].Y_G2);f.closePath();f.fill()}};CDrawingBoard.prototype.private_AddMove=function(e,d,c){var j=this.m_oGameTree.Get_Handler();if(g_mouse_button_right==c.Button){if(j&&j.AddNewNodeWithMove){var a=this.m_oGameTree.Get_CurNode();var m=a.Get_Prev();if(m){this.m_oGameTree.Set_Handler(null);this.m_oGameTree.GoTo_Node(m);var k=this.m_oGameTree.Get_NextMove();if(false===this.private_CanMakeMove(e,d)){this.m_oGameTree.GoTo_Node(a);this.m_oGameTree.Set_Handler(j);return}var l=this.m_oGameTree.Get_CurNode().Have_ChildNodeWithMove(e,d,k);if(-1!==l&&(!j.CheckExistNodeOnMove||true===j.CheckExistNodeOnMove())){var h=this.m_oGameTree.Get_CurNode().Get_Next(l);this.m_oGameTree.GoTo_Node(a);this.m_oGameTree.Set_Handler(j);if(j.GoToNode){j.GoToNode(h)}}else{this.m_oGameTree.GoTo_Node(a);this.m_oGameTree.Set_Handler(j);j.AddNewNodeWithMove(m,e,d,k)}}return}if(this.m_oGameTree.Get_CurNodeDepth()>=1){this.m_oGameTree.Step_Backward(1);this.private_MakeMove(e,d)}}else{if(c.ShiftKey&&c.CtrlKey){var b=BOARD_BLACK===this.m_oGameTree.Get_NextMove()?BOARD_WHITE:BOARD_BLACK;this.m_oGameTree.Set_NextMove(b);this.private_UpdateTargetType()}else{if(true===c.CtrlKey){var i=this.m_oLogicBoard.Get_Size();var g=Common_XYtoString(e,d,i.X,i.Y);this.m_oGameTree.Add_Comment(g);var f=this.m_oGameTree.Get_Drawing();if(f&&f.Add_CommentWithCoordinates){f.Add_CommentWithCoordinates(g)}}else{if(c.ShiftKey){this.m_oGameTree.GoTo_NodeByXY(e,d)}else{if(j&&j.AddNewNodeWithMove){if(false===this.private_CanMakeMove(e,d)){return}var k=this.m_oGameTree.Get_NextMove();var l=this.m_oGameTree.Get_CurNode().Have_ChildNodeWithMove(e,d,k);if(-1!==l&&(!j.CheckExistNodeOnMove||true===j.CheckExistNodeOnMove())){var h=this.m_oGameTree.Get_CurNode().Get_Next(l);if(j.GoToNode){j.GoToNode(h)}}else{j.AddNewNodeWithMove(this.m_oGameTree.Get_CurNode(),e,d,k)}return}this.private_MakeMove(e,d);if(null!==this.m_oPresentation){if(this.m_oGameTree.Get_CurNode().Count_NodeNumber()>=this.m_oPresentation.Get_NodesCountInSlide()){this.m_oPresentation.On_EndSgfSlide()}}}}}}};CDrawingBoard.prototype.private_AddOrRemoveStones=function(g,f,e){var a=BOARD_BLACK;if(BOARD_EMPTY!==this.m_oLogicBoard.Get(g,f)){a=BOARD_EMPTY}else{if(e.ShiftKey){a=BOARD_WHITE}}var d=this.m_oGameTree.Get_Handler();if(d){var c=this.m_oGameTree.Get_CurNode();var b=true===c.Have_Move()||c===this.m_oGameTree.Get_FirstNode();if(d.AddOrRemoveStone){d.AddOrRemoveStone(b,g,f,a)}return}if(true===this.m_oGameTree.Get_CurNode().Have_Move()){if(true===this.m_oGameTree.Add_NewNode(true,true)){this.m_oGameTree.Execute_CurNodeCommands()}}this.Draw_Sector(g,f,a);this.m_oLogicBoard.Set(g,f,a,-1);this.m_oGameTree.AddOrRemove_Stones(a,[Common_XYtoValue(g,f)])};CDrawingBoard.prototype.private_AddMark=function(a,f,e){var d=this.private_GetMark(f,e);var b=this.m_oGameTree.Get_Handler();if(b){if(b.AddOrRemoveMark){b.AddOrRemoveMark(null===d||a!==d.Get_Type(),f,e,a)}return}if(null!==d&&a===d.Get_Type()){this.m_oGameTree.Remove_Mark([Common_XYtoValue(f,e)]);this.Remove_Mark(f,e);this.private_ClearMark(f,e)}else{var c=new CDrawingMark(f,e,a,"");this.m_oGameTree.Add_Mark(a,[Common_XYtoValue(f,e)]);this.private_SetMark(f,e,c);this.private_DrawMark(c)}};CDrawingBoard.prototype.private_AddTriangle=function(c,b,a){this.private_AddMark(EDrawingMark.Tr,c,b)};CDrawingBoard.prototype.private_AddSquare=function(c,b,a){this.private_AddMark(EDrawingMark.Sq,c,b)};CDrawingBoard.prototype.private_AddCircle=function(c,b,a){this.private_AddMark(EDrawingMark.Cr,c,b)};CDrawingBoard.prototype.private_AddX=function(c,b,a){this.private_AddMark(EDrawingMark.X,c,b)};CDrawingBoard.prototype.private_AddText=function(c,b,a){var j=this.private_GetMark(c,b);var k=this.m_oGameTree.Get_Handler();if(null!==j&&EDrawingMark.Tx===j.Get_Type()){if(k){if(k.AddOrRemoveMark){k.AddOrRemoveMark(false,c,b,EDrawingMark.Tx,j.Get_Text())}return}this.m_oGameTree.Remove_Mark([Common_XYtoValue(c,b)]);this.Remove_Mark(c,b)}else{var e="";if(a.ShiftKey){if(!this.m_oDrawing||!this.HtmlElement.Control||!this.HtmlElement.Control.HtmlElement){return}var p=this.m_oDrawing.Get_MainDiv();if(!p){return}var o=this.private_GetXYByBoardPos(c,b);var i=this.m_oDrawing.Get_ElementOffset(this.HtmlElement.Control.HtmlElement);var n=g_oLocalization?g_oLocalization.gameRoom.labelPlaceholder:"Label...";var l=50;var d=document.createElement("input");d.style.position="absolute";d.style.top=i.Y+o.Y-10+"px";d.style.left=i.X+o.X-(l/2)+"px";d.style.width=l+"px";d.style.height="20px";d.style.fontFamily='"Times New Roman", Times, serif';d.style.fontSize="16px";d.type="text";d.placeholder=n;d.style.outline=0;d.style.border="1px solid rgb(166, 166, 166)";d.style.boxShadow="rgba(0, 0, 0, 0.8) 0px 1px 15px";d.style.padding="3px";p.appendChild(d);d.focus();var g=this;d.onblur=function(){g.m_oDrawing.Remove_LabelElement()};d.onkeydown=function(r){if(27===r.keyCode){g.m_oDrawing.Remove_LabelElement()}else{if(13===r.keyCode){e=this.value;if(k){if(k.AddOrRemoveMark){k.AddOrRemoveMark(true,c,b,EDrawingMark.Tx,e)}g.m_oDrawing.Remove_LabelElement();return}var q=new CDrawingMark(c,b,EDrawingMark.Tx,e);g.m_oGameTree.Add_TextMark(e,Common_XYtoValue(c,b));g.private_SetMark(c,b,q);g.private_DrawMarks();g.m_oDrawing.Remove_LabelElement()}}};g.m_oDrawing.Register_AddLabelElement(d);return}if(undefined==e||""===e||null===e){e=this.private_GetNextTextMark();if(null===e){var m=this.m_oGameTree;var f=m.Get_Drawing();if(f){CreateWindow(f.Get_MainDiv().id,EWindowType.Error,{GameTree:m,Drawing:f,ErrorText:"Sorry, all standard labels are used up! To add more labels, use shift and click on the board to make up ur own labels.",W:305,H:115})}return}}if(k){if(k.AddOrRemoveMark){k.AddOrRemoveMark(true,c,b,EDrawingMark.Tx,e)}return}var h=new CDrawingMark(c,b,EDrawingMark.Tx,e);this.m_oGameTree.Add_TextMark(e,Common_XYtoValue(c,b));this.private_SetMark(c,b,h)}this.private_DrawMarks()};CDrawingBoard.prototype.private_AddNum=function(c,b,a){var g=this.private_GetMark(c,b);var h=this.m_oGameTree.Get_Handler();if(null!==g&&EDrawingMark.Tx===g.Get_Type()){if(h){if(h.AddOrRemoveMark){h.AddOrRemoveMark(false,c,b,EDrawingMark.Tx,g.Get_Text())}return}this.m_oGameTree.Remove_Mark([Common_XYtoValue(c,b)]);this.Remove_Mark(c,b)}else{var d="";if(a.ShiftKey){var i=this.m_oLogicBoard.Get_Num(c,b);if(-1==i){var j=this.m_oGameTree;var e=j.Get_Drawing();if(e){CreateWindow(e.Get_MainDiv().id,EWindowType.Error,{GameTree:j,Drawing:e,ErrorText:"Sorry, no move has been made at that location, so you can't mark it with the move number.",W:305,H:115})}return}else{d=""+i}}if(undefined===d||""===d||null===d){d=this.private_GetNextNumMark()}if(h){if(h.AddOrRemoveMark){h.AddOrRemoveMark(true,c,b,EDrawingMark.Tx,d)}return}var f=new CDrawingMark(c,b,EDrawingMark.Tx,d);this.m_oGameTree.Add_TextMark(d,Common_XYtoValue(c,b));this.private_SetMark(c,b,f)}this.private_DrawMarks()};CDrawingBoard.prototype.private_GetNextTextMark=function(){var c=[];var g=-1;for(var d in this.m_oMarks){var e=this.m_oMarks[d];if(EDrawingMark.Tx==e.Get_Type()){var b=e.Get_Text();var a=b.charCodeAt(0);if(1==b.length&&65<=a&&a<=90){c[a]=1}}}for(var f=65;f<=90;f++){if(undefined===c[f]||""==c[f]){g=f;break}}if(-1==g){return null}else{return String.fromCharCode(g)}};CDrawingBoard.prototype.private_GetNextNumMark=function(){var c=[];var d=0;for(var e in this.m_oMarks){var f=this.m_oMarks[e];if(EDrawingMark.Tx===f.Get_Type()){if(Common_IsInt(f.Get_Text())){c[d]=parseInt(f.Get_Text());d++}}}if(d<=0){return"1"}c.sort(Common_SortIncrease);var g=0;var b=0;var a=false;for(var h=0;h<d;h++){if(c[h]>g+1){b=(g+1);a=true;break}g=c[h]}if(!a){b=g+1}return""+b};CDrawingBoard.prototype.private_MakeMove=function(c,b){if(true==this.private_CanMakeMove(c,b)){var a=(BOARD_BLACK===this.m_oGameTree.Get_NextMove()?BOARD_BLACK:BOARD_WHITE);if(true===this.m_oGameTree.Add_NewNodeByPos(c,b,a)){this.m_oGameTree.Execute_CurNodeCommands()}}};CDrawingBoard.prototype.private_CanMakeMove=function(d,c){var b=false;if(BOARD_EMPTY===this.m_oLogicBoard.Get(d,c)){var a=(BOARD_BLACK===this.m_oGameTree.Get_NextMove()?BOARD_BLACK:BOARD_WHITE);this.m_oLogicBoard.Set(d,c,a,-1);b=true;this.m_oLogicBoard.Set(d,c,BOARD_EMPTY,-1)}return b};CDrawingBoard.prototype.private_HandleKeyDown=function(a){if(EBoardMode.ViewPort===this.m_eMode){return}var d=this.m_oGameTree.Get_Handler();var e=a.KeyCode;var h=false;if(8===e||46===e){if(d&&d.RemoveNode){d.RemoveNode(this.m_oGameTree.Get_CurNode());return}this.m_oGameTree.Remove_CurNode();h=true}else{if(36===e){if(true===a.CtrlKey&&true===a.ShiftKey){this.m_oGameTree.GoTo_StartNode();h=true}}else{if(37===e){if(a.CtrlKey&&a.ShiftKey){this.m_oGameTree.Step_BackwardToStart()}else{if(a.CtrlKey){this.m_oGameTree.Step_Backward(5)}else{this.m_oGameTree.Step_Backward(1)}}h=true}else{if(38===e){if(a.CtrlKey){this.m_oGameTree.GoTo_MainVariant()}else{this.m_oGameTree.GoTo_PrevVariant()}h=true}else{if(39===e){if(a.CtrlKey&&a.ShiftKey){this.m_oGameTree.Step_ForwardToEnd()}else{if(a.CtrlKey){this.m_oGameTree.Step_Forward(5)}else{this.m_oGameTree.Step_Forward(1)}}h=true}else{if(40===e){this.m_oGameTree.GoTo_NextVariant();h=true}else{if(65===e&&true===a.CtrlKey&&true===a.ShiftKey){this.private_DrawLogo();h=true}else{if(78===e&&true===a.CtrlKey&&true===a.ShiftKey){if(EBoardMode.AddMarkColor===this.m_eMode){this.m_oGameTree.Copy_ColorMapFromPrevNode()}else{CreateWindow(this.HtmlElement.Control.HtmlElement.id,EWindowType.CreateNew,{GameTree:this.m_oGameTree,Drawing:this.m_oDrawing})}h=true}else{if(67===e&&true===a.CtrlKey){this.m_oGameTree.CopyToClipboard()}else{if(68===e&&true===a.CtrlKey){if(true===a.ShiftKey){this.m_oGameTree.Move_Variant(-1)}else{CreateWindow(this.HtmlElement.Control.HtmlElement.id,EWindowType.DiagramSL,{GameTree:this.m_oGameTree,Drawing:this.m_oDrawing})}h=true}else{if(72===e&&true===a.CtrlKey){if(true===a.ShiftKey){this.m_oGameTree.Download_GifBoardScreenShot()}else{this.m_oGameTree.Download_PngBoardScreenShot()}h=true}else{if(73===e&&true===a.CtrlKey){if(true===a.ShiftKey){this.m_oGameTree.Download_GifForProblem()}else{this.m_oGameTree.Download_GifForCurVariant()}h=true}else{if(75===e&&true===a.CtrlKey){CreateWindow(this.HtmlElement.Control.HtmlElement.id,EWindowType.Kifu,{GameTree:this.m_oGameTree,Drawing:this.m_oDrawing});h=true}else{if(77===e&&true===a.CtrlKey&&true===a.ShiftKey){this.m_oGameTree.Make_CurrentVariantMainly();h=true}else{if(79===e&&true===a.CtrlKey){if(EBoardMode.AddMarkColor===this.m_eMode){CreateWindow(this.HtmlElement.Control.HtmlElement.id,EWindowType.CountColors,{DrawingBoard:this,Drawing:this.m_oDrawing})}else{if(this.m_oGameTree&&this.m_oGameTree.m_nEditingFlags&EDITINGFLAGS_LOADFILE){Common.OpenFileDialog(this.m_oGameTree)}}h=true}else{if(82===e&&true===a.CtrlKey){if(EBoardMode.AddMarkColor===this.m_eMode){this.private_ClearAllColorMarks();this.m_oGameTree.Remove_AllColorMarks()}else{this.Set_Rulers(true===this.m_bRulers?false:true)}h=true}else{if(83===e&&true===a.CtrlKey){var g=this.m_oGameTree.Save_Sgf();if(FileReader&&Blob){var f=this.m_oGameTree.Get_GameName();if(""===f){f=this.m_oGameTree.Get_WhiteName()+"_vs_"+this.m_oGameTree.Get_BlackName()}f+=".sgf";var c=new Blob([g],{type:"text/plain;charset=utf-8"});Common.SaveAs(c,f,"application/x-go-sgf")}h=true}else{if(85===e&&true===a.CtrlKey){if(true===a.ShiftKey){this.m_oGameTree.Move_Variant(1);h=true}}else{if(86===e&&true===a.CtrlKey){if(true===a.ShiftKey){if(this.m_oGameTree&&(this.m_oGameTree.m_nEditingFlags&EDITINGFLAGS_VIEWPORT)){CreateWindow(this.HtmlElement.Control.HtmlElement.id,EWindowType.ViewPort,{GameTree:this.m_oGameTree,Drawing:this.m_oDrawing})}}else{CreateWindow(this.HtmlElement.Control.HtmlElement.id,EWindowType.Clipboard,{GameTree:this.m_oGameTree,Drawing:this.m_oDrawing})}h=true}else{if(86===e&&false===a.CtrlKey&&true===a.ShiftKey){var b=this.m_oGameTree.Get_ShowVariants();b++;if(b>EShowVariants.Max){b=EShowVariants.Min}this.m_oGameTree.Set_ShowVariants(b)}else{if(112===e){this.Set_Mode(EBoardMode.Move);h=true}else{if(114===e){this.Set_Mode(EBoardMode.AddRemove);h=true}else{if(115===e){this.Set_Mode(EBoardMode.AddMarkTr);h=true}else{if(116===e){this.Set_Mode(EBoardMode.AddMarkSq);h=true}else{if(117===e){this.Set_Mode(EBoardMode.AddMarkCr);h=true}else{if(118===e){this.Set_Mode(EBoardMode.AddMarkX);h=true}else{if(119===e){this.Set_Mode(EBoardMode.AddMarkTx);h=true}else{if(120===e){this.Set_Mode(EBoardMode.AddMarkNum);h=true}else{if(121===e){this.Set_Mode(EBoardMode.AddMarkColor);h=true}}}}}}}}}}}}}}}}}}}}}}}}}}}}}return h};CDrawingBoard.prototype.private_IsPointInViewPort=function(b,a){if(b>=this.m_oViewPort.X0&&b<=this.m_oViewPort.X1&&a>=this.m_oViewPort.Y0&&a<=this.m_oViewPort.Y1){return true}return false};CDrawingBoard.prototype.private_IsHorLineInViewPort=function(a){if(a>=this.m_oViewPort.Y0&&a<=this.m_oViewPort.Y1){return true}return false};CDrawingBoard.prototype.private_IsVerLineInViewPort=function(a){if(a>=this.m_oViewPort.X0&&a<=this.m_oViewPort.X1){return true}return false};CDrawingBoard.prototype.private_GetSettings_TrueColorBoard=function(){return this.m_oGameTree.Get_LocalSettings().Is_BoardTrueColorBoard()};CDrawingBoard.prototype.private_GetSettings_TrueColorStones=function(){return this.m_oGameTree.Get_LocalSettings().Is_BoardTrueColorStones()};CDrawingBoard.prototype.private_GetSettings_ShellWhiteStones=function(){return this.m_oGameTree.Get_LocalSettings().Is_BoardShellWhiteStones()};CDrawingBoard.prototype.private_GetSettings_Shadows=function(){return this.m_oGameTree.Get_LocalSettings().Is_BoardShadows()};CDrawingBoard.prototype.private_GetSettings_WhiteColor=function(){return this.m_oGameTree.Get_LocalSettings().Get_BoardWhiteColor()};CDrawingBoard.prototype.private_GetSettings_BlackColor=function(){return this.m_oGameTree.Get_LocalSettings().Get_BoardBlackColor()};CDrawingBoard.prototype.private_GetSettings_BoardColor=function(){return this.m_oGameTree.Get_LocalSettings().Get_BoardBoardColor()};CDrawingBoard.prototype.private_GetSettings_LinesColor=function(){return this.m_oGameTree.Get_LocalSettings().Get_BoardLinesColor()};CDrawingBoard.prototype.private_GetSettings_DarkBoard=function(){return this.m_oGameTree.Get_LocalSettings().Is_BoardDarkBoard()};CDrawingBoard.prototype.private_DrawLogo=function(){this.private_DrawTrueColorBoard();var f=this.m_oImageData.W;var o=this.m_oImageData.H;var x=this.HtmlElement.Lines.Control.HtmlElement.getContext("2d");x.clearRect(0,0,f,o);var t=f/406,s=o/348;var v=[207,193,1];var m=[{X:0,Y:49},{X:0,Y:198},{X:71,Y:348},{X:178,Y:348},{X:318,Y:348},{X:406,Y:238},{X:406,Y:41},{X:247,Y:0}];var j=[[[162,162,2],[221,125,2],[256,156,2],[250,203,1],[234,231,2],[199,236,0],[177,228,1],[150,195,1]],[[133,141,2],[229,89,1],[283,136,1],[282,210,2],[247,249,0],[195,261,2],[158,250,0],[124,196,0]],[[106,122,0],[238,45,0],[309,115,0],[312,216,2],[260,267,0],[187,300,1],[138,272,0],[96,197,1]],[[72,99,2],[246,10,0],[346,88,1],[344,224,0],[272,291,0],[182,329,0],[115,298,0],[60,197,0]],[[28,67,0],[259,-40,0],[373,66,0],[385,233,0],[298,319,2],[170,380,0],[81,336,0],[14,198]]];for(var c=0,e=m.length;c<e;c++){x.beginPath();x.moveTo(v[0]*t,v[1]*s);x.lineTo(m[c].X*t,m[c].Y*s);x.stroke()}for(var u=0,i=j.length;u<i;u++){var r=j[u];x.beginPath();for(var k=0,q=r.length;k<q;k++){var p=r[k];if(0===k){x.moveTo(p[0]*t,p[1]*s)}else{x.lineTo(p[0]*t,p[1]*s)}}x.closePath();x.stroke()}j.push([v]);this.private_CreateTrueColorStones(30*t);this.private_CreateShadows();var a=this.HtmlElement.Stones.Control.HtmlElement.getContext("2d");var y=this.HtmlElement.Shadow.Control.HtmlElement.getContext("2d");a.clearRect(0,0,f,o);y.clearRect(0,0,f,o);var w=this.m_oImageData.StoneDiam;var h=(w-1)/2;var g=this.m_oImageData.ShadowOff;for(var u=0,i=j.length;u<i;u++){var r=j[u];for(var k=0,q=r.length;k<q;k++){var p=r[k];var n=((p[0]*t)|0)-h;var l=((p[1]*s)|0)-h;if(BOARD_BLACK===p[2]){a.putImageData(this.m_oImageData.BlackStone,n,l)}else{if(BOARD_WHITE===p[2]){var b=(Math.random()*(this.m_oImageData.WhiteStones.length-1))|0;a.putImageData(this.m_oImageData.WhiteStones[b],n,l)}}if(BOARD_BLACK===p[2]||BOARD_WHITE===p[2]){y.putImageData(this.m_oImageData.Shadow,n+g,l+g)}}}};CDrawingBoard.prototype.Clear_Board=function(){var a=this.m_oImageData.W;var b=this.m_oImageData.H;this.HtmlElement.Board.Control.HtmlElement.getContext("2d").clearRect(0,0,a,b);this.HtmlElement.Lines.Control.HtmlElement.getContext("2d").clearRect(0,0,a,b);this.HtmlElement.Stones.Control.HtmlElement.getContext("2d").clearRect(0,0,a,b);this.HtmlElement.Colors.Control.HtmlElement.getContext("2d").clearRect(0,0,a,b);this.HtmlElement.Shadow.Control.HtmlElement.getContext("2d").clearRect(0,0,a,b);this.HtmlElement.Variants.Control.HtmlElement.getContext("2d").clearRect(0,0,a,b);this.HtmlElement.Marks.Control.HtmlElement.getContext("2d").clearRect(0,0,a,b);this.HtmlElement.Target.Control.HtmlElement.getContext("2d").clearRect(0,0,a,b);this.HtmlElement.Select.Control.HtmlElement.getContext("2d").clearRect(0,0,a,b)};CDrawingBoard.prototype.Get_GameTree=function(){return this.m_oGameTree};CDrawingBoard.prototype.Show_Hint=function(b,a){this.m_oHints[""+Common_XYtoValue(b,a)]=true;this.private_DrawMarks()};CDrawingBoard.prototype.Hide_Hint=function(){this.m_oHints={};this.private_DrawMarks()};"use strict";var EBoardTargetType={Unknown:-1,BlackStone:0,WhiteStone:1,BlackX:2,WhiteX:3,ColorR:4,ColorG:5,ColorB:6,ColorA:7};function CBoardTarget(b,a){this.m_oDrawingBoard=a;this.m_nLogicX=-1;this.m_nLogicY=-1;this.m_oHtmlElement=null;this.m_eType=EBoardTargetType.Unknown;this.m_nSize=-1;this.m_oImageData=b}CBoardTarget.prototype.Init=function(a){this.m_oHtmlElement=document.getElementById(a);this.m_oHtmlElement.style.position="absolute";this.Hide()};CBoardTarget.prototype.Get_LogicPos=function(){return{X:this.m_nLogicX,Y:this.m_nLogicY}};CBoardTarget.prototype.Update_Size=function(a){this.m_oHtmlElement.width=a;this.m_oHtmlElement.height=a;this.m_oHtmlElement.style.width=a+"px";this.m_oHtmlElement.style.height=a+"px";this.m_nSize=a;this.m_eType=EBoardTargetType.Unknown};CBoardTarget.prototype.Hide=function(){this.m_oHtmlElement.style.display="none";this.m_nLogicX=-1;this.m_nLogicY=-1};CBoardTarget.prototype.Show=function(){var a=this.m_oDrawingBoard.Get_GameTree();if(a&&true===a.Get_LocalSettings().Is_ShowTarget()){this.m_oHtmlElement.style.display="block"}};CBoardTarget.prototype.Check_LogicPos=function(c,b,a){if(c==this.m_nLogicX&&b==this.m_nLogicY&&true!=a){return true}this.m_nLogicX=c;this.m_nLogicY=b;this.Show();return false};CBoardTarget.prototype.Set_Pos=function(b,a){this.m_oHtmlElement.style.left=b+"px";this.m_oHtmlElement.style.top=a+"px"};CBoardTarget.prototype.Set_Type=function(c){if(c!=this.m_eType){this.m_eType=c;if(EBoardTargetType.Unknown===c){return}var a=document.createElement("canvas");a.width=this.m_nSize;a.height=this.m_nSize;var b=a.getContext("2d");switch(c){case EBoardTargetType.BlackStone:b.putImageData(this.m_oImageData.BlackTarget,0,0);break;case EBoardTargetType.WhiteStone:b.putImageData(this.m_oImageData.WhiteTarget,0,0);break;case EBoardTargetType.BlackX:b.putImageData(this.m_oImageData.X_Black,0,0);break;case EBoardTargetType.WhiteX:b.putImageData(this.m_oImageData.X_White,0,0);break;case EBoardTargetType.ColorR:b.putImageData(this.m_oImageData.RcolorTarget,0,0);break;case EBoardTargetType.ColorG:b.putImageData(this.m_oImageData.GcolorTarget,0,0);break;case EBoardTargetType.ColorB:b.putImageData(this.m_oImageData.BcolorTarget,0,0);break;case EBoardTargetType.ColorA:b.putImageData(this.m_oImageData.AcolorTarget,0,0);break}var d=a.toDataURL("image/png");this.m_oHtmlElement.style.backgroundImage="url('"+d+"')"}};CBoardTarget.prototype.Check_XY=function(b,a){if(b==this.m_nLogicX&&a==this.m_nLogicY){return true}return false};"use strict";var g_mouse_event_type_down=0;var g_mouse_event_type_move=1;var g_mouse_event_type_up=2;var g_mouse_event_type_wheel=3;var g_mouse_button_left=0;var g_mouse_button_center=1;var g_mouse_button_right=2;var g_mouse_event_settings_lock=1;var g_mouse_event_settings_count=2;function CMouseEventHandler(){this.X=0;this.Y=0;this.Button=g_mouse_button_left;this.Type=g_mouse_event_type_move;this.AltKey=false;this.CtrlKey=false;this.ShiftKey=false;this.Sender=null;this.LastClickTime=-1;this.ClickCount=0;this.WheelDelta=0;this.IsPressed=false;this.LastX=0;this.LastY=0;this.KoefPixToMM=1;this.IsLocked=false;this.buttonObject=null;this.LockMouse=function(){if(!this.IsLocked){this.IsLocked=true;return true}return false};this.UnLockMouse=function(){if(this.IsLocked){this.IsLocked=false;return true}return false}}function CKeyboardEvent(){this.AltKey=false;this.CtrlKey=false;this.ShiftKey=false;this.Sender=null;this.CharCode=0;this.KeyCode=0}var global_mouseEvent=new CMouseEventHandler();var global_keyboardEvent=new CKeyboardEvent();function check_KeyboardEvent(a){global_keyboardEvent.AltKey=a.altKey;if(a.metaKey!==undefined){global_keyboardEvent.CtrlKey=a.ctrlKey||a.metaKey}else{global_keyboardEvent.CtrlKey=a.ctrlKey}global_keyboardEvent.ShiftKey=a.shiftKey;global_keyboardEvent.Sender=(a.srcElement)?a.srcElement:a.target;global_keyboardEvent.CharCode=a.charCode;global_keyboardEvent.KeyCode=a.keyCode;global_keyboardEvent.Which=a.which}function check_MouseMoveEvent(a){if(global_mouseEvent.IsLocked){return false}if(a.pageX||a.pageY){global_mouseEvent.X=a.pageX;global_mouseEvent.Y=a.pageY}else{if(a.clientX||a.clientY){global_mouseEvent.X=a.clientX;global_mouseEvent.Y=a.clientY}}global_mouseEvent.AltKey=a.altKey;global_mouseEvent.ShiftKey=a.shiftKey;global_mouseEvent.CtrlKey=a.ctrlKey||a.metaKey;global_mouseEvent.Type=g_mouse_event_type_move;if(!global_mouseEvent.IsLocked){global_mouseEvent.Sender=(a.srcElement)?a.srcElement:a.target}if((Math.abs(global_mouseEvent.X-global_mouseEvent.LastX)>3)||(Math.abs(global_mouseEvent.Y-global_mouseEvent.LastY)>3)){global_mouseEvent.LastClickTime=-1;global_mouseEvent.ClickCount=0}return true}function check_MouseDownEvent(c,a){if(c.pageX||c.pageY){global_mouseEvent.X=c.pageX;global_mouseEvent.Y=c.pageY}else{if(c.clientX||c.clientY){global_mouseEvent.X=c.clientX;global_mouseEvent.Y=c.clientY}}global_mouseEvent.LastX=global_mouseEvent.X;global_mouseEvent.LastY=global_mouseEvent.Y;global_mouseEvent.AltKey=c.altKey;global_mouseEvent.ShiftKey=c.shiftKey;global_mouseEvent.CtrlKey=c.ctrlKey||c.metaKey;global_mouseEvent.Type=g_mouse_event_type_down;global_mouseEvent.Button=c.button;global_mouseEvent.Sender=(c.srcElement)?c.srcElement:c.target;if(a){var b=new Date().getTime();if(0==global_mouseEvent.ClickCount){global_mouseEvent.ClickCount=1;global_mouseEvent.LastClickTime=b}else{if(500>b-global_mouseEvent.LastClickTime){global_mouseEvent.LastClickTime=b;global_mouseEvent.ClickCount++}else{global_mouseEvent.ClickCount=1;global_mouseEvent.LastClickTime=b}}}else{global_mouseEvent.LastClickTime=-1;global_mouseEvent.ClickCount=1}window.g_bIsMouseUpLockedSend=false}function InitCaptureEvents(){window.onmousemove=function(a){return Window_OnMouseMove(a)};window.onmouseup=function(a){return Window_OnMouseUp(a)}}function Window_OnMouseMove(a){if(!global_mouseEvent.IsLocked){return}if((undefined!=global_mouseEvent.Sender)&&(null!=global_mouseEvent.Sender)&&(undefined!=global_mouseEvent.Sender.onmousemove)&&(null!=global_mouseEvent.Sender.onmousemove)){global_mouseEvent.Sender.onmousemove(a)}}function Window_OnMouseUp(a){if(false===window.g_bIsMouseUpLockedSend){window.g_bIsMouseUpLockedSend=true;if(global_mouseEvent.IsLocked&&global_mouseEvent.Sender){if(undefined!=global_mouseEvent.Sender.onmouseup&&null!=global_mouseEvent.Sender.onmouseup){global_mouseEvent.Sender.onmouseup(a,true)}}global_mouseEvent.Sender=null}}InitCaptureEvents();var EDrawingMark={Lm:-1,Tr:0,Sq:1,Cr:2,Tx:3,X:4,Tb:5,Tw:6,Tb2:7,Tw2:8};function CDrawingMark(d,c,a,b){this.m_oPos={X:undefined===d?0:d,Y:undefined==c?0:c};this.m_nType=undefined===a?EDrawingMark.Tr:a;this.m_sText=undefined===b?"":b}CDrawingMark.prototype.Get_Pos=function(){return this.m_oPos};CDrawingMark.prototype.Get_X=function(){return this.m_oPos.X};CDrawingMark.prototype.Get_Y=function(){return this.m_oPos.Y};CDrawingMark.prototype.Set_Pos=function(b,a){this.m_oPos.X=b;this.m_oPos.Y=a};CDrawingMark.prototype.Get_Type=function(){return this.m_nType};CDrawingMark.prototype.Set_Type=function(a){this.m_nType=a};CDrawingMark.prototype.Get_Text=function(){return this.m_sText};CDrawingMark.prototype.Set_Text=function(a){this.m_sText=a};"use strict";var EDrawingButtonState={Normal:0,Active:1,Hover:2,Disabled:4,Selected:8};var EDrawingButtonState2={AutoPlayPlaying:0,AutoPlayStopped:16};function CDrawingButtonBase(a){this.m_oDrawing=a;this.m_oGameTree=a?a.Get_GameTree():null;this.m_nState=EDrawingButtonState.Normal;this.m_nState2=EDrawingButtonState2.AutoPlayStopped;this.m_bSelected=false;this.m_oImageData={Disabled:null,Normal:null,Hover:null,Active:null,Selected:null};this.HtmlElement={Control:null,Canvas:{Control:null}};this.m_oNormaBColor=new CColor(0,0,0,51);this.m_oNormaFColor=new CColor(255,255,255,255);this.m_oHoverBColor=new CColor(0,0,0,102);this.m_oHoverFColor=new CColor(255,255,255,255);this.m_oActiveBColor=new CColor(0,0,0,153);this.m_oActiveFColor=new CColor(255,255,255,255);this.m_oDisabledBColor=new CColor(0,0,0,0);this.m_oDisabledFColor=new CColor(140,140,140,255);this.m_oSelectedBColor=new CColor(0,0,0,77);this.m_nW=0;this.m_nH=0;this.m_nLoadReady=0;var b=this;this.private_OnMouseDown=function(c){if(EDrawingButtonState.Disabled!==b.m_nState){check_MouseDownEvent(c,true);b.m_nState=EDrawingButtonState.Active;b.private_UpdateState();c.stopImmediatePropagation();b.private_ClickTransformIn()}};this.private_OnMouseUp=function(c){if(EDrawingButtonState.Disabled!==b.m_nState){if(global_mouseEvent.Sender!==c.target){return}b.m_nState=EDrawingButtonState.Hover;b.private_UpdateState();b.private_HandleMouseDown();c.stopImmediatePropagation()}b.private_OnFocus();b.private_ClickTransformOut()};this.private_OnMouseOver=function(c){if(EDrawingButtonState.Disabled!==b.m_nState){if(EDrawingButtonState.Active!==b.m_nState){b.m_nState=EDrawingButtonState.Hover}b.private_UpdateState()}};this.private_OnMouseOut=function(c){if(EDrawingButtonState.Disabled!==b.m_nState){b.m_nState=b.m_bSelected?EDrawingButtonState.Selected:EDrawingButtonState.Normal;b.private_UpdateState();b.private_ClickTransformOut()}};this.private_OnFocus=function(){if(b.m_oGameTree&&!(b instanceof CDrawingButtonGameInfo)){b.m_oGameTree.Focus()}};this.private_OnDragStart=function(c){c.dataTransfer.effectAllowed="all";c.dataTransfer.setData("text/sgf","(;SZ[19];)")}}CDrawingButtonBase.prototype.Init=function(d,e){this.m_oGameTree=e;this.private_RegisterButton();this.HtmlElement.Control=CreateControlContainer(d);var b=this.HtmlElement.Control.HtmlElement;var c=this.private_GetHint();b.setAttribute("title",c);b.style.backgroundColor="rgba(217,217,217,1)";var f=document.createElement("canvas");f.setAttribute("id",d+"_canvas");f.setAttribute("style","position:absolute;padding:0;margin:0;");f.setAttribute("oncontextmenu","return false;");f.style["-webkit-transition"]="background 2s";f.style.transition="background 2s";f.draggable="false";f.ondragstart=function(g){g.preventDefault();return false};b.appendChild(f);this.HtmlElement.Canvas.Control=CreateControlContainer(d+"_canvas");var a=this.HtmlElement.Canvas.Control;a.Bounds.SetParams(0,0,1000,1000,false,false,false,false,-1,-1);a.Anchor=(g_anchor_top|g_anchor_left|g_anchor_bottom|g_anchor_right);this.HtmlElement.Control.AddControl(a);b.onmousedown=this.private_OnMouseDown;b.onmouseup=this.private_OnMouseUp;b.onmouseover=this.private_OnMouseOver;b.onmouseout=this.private_OnMouseOut;b.onfocus=this.private_OnFocus;b.tabIndex=-1;b.style.outline="none";b.draggable="true";b.ondragstart=this.private_OnDragStart;this.Update_Size()};CDrawingButtonBase.prototype.Update_Size=function(c){if(true!==this.private_IsReady()){return}var a=this.HtmlElement.Control.HtmlElement.clientWidth;var b=this.HtmlElement.Control.HtmlElement.clientHeight;if(a!==this.m_nW||b!==this.m_nH||true===c){this.m_nW=a;this.m_nH=b;this.HtmlElement.Control.Resize(this.m_nW,this.m_nH);this.private_OnResize()}};CDrawingButtonBase.prototype.Set_Enabled=function(a){if(true===a&&this.m_nState===EDrawingButtonState.Disabled){this.m_nState=EDrawingButtonState.Normal;this.private_UpdateState()}else{if(false===a&&this.m_nState!==EDrawingButtonState.Disabled){this.m_nState=EDrawingButtonState.Disabled;this.private_UpdateState()}}};CDrawingButtonBase.prototype.Set_State2=function(a){if(this.m_nState2!==a){this.m_nState2=a;this.private_OnResize();this.HtmlElement.Control.HtmlElement.setAttribute("title",this.private_GetHint())}};CDrawingButtonBase.prototype.Set_Selected=function(a){if(this.m_bSelected!==a){this.m_bSelected=a;if(true===a&&EDrawingButtonState.Normal===this.m_nState){this.m_nState=EDrawingButtonState.Selected;this.private_UpdateState()}else{if(false===a&&EDrawingButtonState.Selected===this.m_nState){this.m_nState=EDrawingButtonState.Normal;this.private_UpdateState()}}}};CDrawingButtonBase.prototype.Hide=function(){if(this.HtmlElement.Control&&this.HtmlElement.Control.HtmlElement){this.HtmlElement.Control.HtmlElement.style.display="none"}};CDrawingButtonBase.prototype.Show=function(){if(this.HtmlElement.Control&&this.HtmlElement.Control.HtmlElement){this.HtmlElement.Control.HtmlElement.style.display="block"}};CDrawingButtonBase.prototype.private_OnResize=function(){var b=this.m_nH;var a=this.m_nW;if(0===a||0===b){return}this.m_oImageData.Active=this.private_Draw(this.m_oActiveBColor,this.m_oActiveFColor,a,b);this.m_oImageData.Hover=this.private_Draw(this.m_oHoverBColor,this.m_oHoverFColor,a,b,false,true);this.m_oImageData.Normal=this.private_Draw(this.m_oNormaBColor,this.m_oNormaFColor,a,b);this.m_oImageData.Disabled=this.private_Draw(this.m_oDisabledBColor,this.m_oDisabledFColor,a,b,true);this.m_oImageData.Selected=this.private_Draw(this.m_oSelectedBColor,this.m_oHoverFColor,a,b,false,true);this.private_UpdateState()};CDrawingButtonBase.prototype.private_Draw=function(i,c,b,j,e,f){var a=this.HtmlElement.Canvas.Control.HtmlElement.getContext("2d");a.clearRect(0,0,b,j);a.fillStyle=i.ToString();a.fillRect(0,0,b,j);a.fillStyle=c.ToString();a.strokeStyle=c.ToString();var d=(Math.min(b,j)*0.8)|0;var h=(b-d)/2;var g=(j-d)/2;this.private_DrawOnCanvas(a,d,h,g,e,b,j,i,c);if(true===f){this.private_DrawSelectionBounds(a,b,j)}return a.getImageData(0,0,b,j)};CDrawingButtonBase.prototype.private_DrawOnCanvas=function(a,d,g,f,e,b,i,h,c){};CDrawingButtonBase.prototype.private_DrawTriangle=function(b,f,e,a,j){var h=Math.ceil(f+b/5+0.5);var d=Math.ceil(f+4*b/5+0.5);var g=Math.ceil(e+b/5+0.5);var i=Math.ceil(e+b/2+0.5);var c=Math.ceil(e+4*b/5+0.5);if(j<0){a.beginPath();a.moveTo(h,i);a.lineTo(d,g);a.lineTo(d,c);a.closePath();a.fill()}else{a.beginPath();a.moveTo(h,g);a.lineTo(d,i);a.lineTo(h,c);a.closePath();a.fill()}};CDrawingButtonBase.prototype.private_UpdateState=function(){var a=this.HtmlElement.Canvas.Control.HtmlElement.getContext("2d");var b=null;switch(this.m_nState){case EDrawingButtonState.Hover:b=this.m_oImageData.Hover;break;case EDrawingButtonState.Active:b=this.m_oImageData.Active;break;case EDrawingButtonState.Disabled:b=this.m_oImageData.Disabled;break;case EDrawingButtonState.Selected:b=this.m_oImageData.Selected;break;default:case EDrawingButtonState.Normal:b=this.m_oImageData.Normal;break}if(b){a.putImageData(b,0,0)}};CDrawingButtonBase.prototype.private_HandleMouseDown=function(){};CDrawingButtonBase.prototype.private_GetHint=function(){return""};CDrawingButtonBase.prototype.private_RegisterButton=function(){};CDrawingButtonBase.prototype.private_AddImageToLoad=function(c){this.m_nLoadReady--;var b=new Image();var a=this;b.onload=function(){a.private_OnImageReady()};b.src=c;return b};CDrawingButtonBase.prototype.private_IsReady=function(){return this.m_nLoadReady<0?false:true};CDrawingButtonBase.prototype.private_OnImageReady=function(){this.m_nLoadReady++;if(this.m_nLoadReady>=0){this.Update_Size(true)}};CDrawingButtonBase.prototype.private_ClickTransformIn=function(){this.HtmlElement.Control.HtmlElement.style.transition="transform 0.1s ease-out";this.HtmlElement.Control.HtmlElement.style.transform="scale(0.9)"};CDrawingButtonBase.prototype.private_ClickTransformOut=function(){this.HtmlElement.Control.HtmlElement.style.transition="transform 0.2s ease-out";this.HtmlElement.Control.HtmlElement.style.transform="scale(1)"};CDrawingButtonBase.prototype.private_DrawSelectionBounds=function(b,a,c){b.beginPath();b.lineWidth=1;b.strokeStyle=(new CColor(0,0,0,255)).ToString();b.moveTo(0,0);b.lineTo(a,0);b.lineTo(a,c);b.lineTo(0,c);b.lineTo(0,0);b.stroke();b.beginPath()};function CDrawingButtonBackwardToStart(a){CDrawingButtonBackwardToStart.superclass.constructor.call(this,a);this.m_oImage=this.private_AddImageToLoad("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3wwTDRIczM2u5QAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAA80lEQVRYw+3XMYqFMBQF0JshlYgg8hqXIELERrfgAmaVA65DYQrTuASbIIKIVSBTDQy/m59A/od3+8AhvNxHBACM44hXyQdeLAxiEIMY9HYgIvoehsG1beve4oaklOi6ztV17aKDpJTo+96VZYk8z5GmaTzQL4aIsO87tNbiuq44oEfMsiziPM84MxQS4w0KjfEGKaUcEeG+b6zr+uWL8QZprYUxBkmSoKqqzyzL4oKstZimSRhjUBQFmqZxvijvoQ6NCvLsQ6KCFeMjSinlojb1X9S2bTiOA880tQy9XK21mOdZPHte8EeRQQxiEIMY9L/8AMSPglq/uMNKAAAAAElFTkSuQmCC");this.m_oImageDisabled=this.private_AddImageToLoad("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3wwTDRcMrA1KxAAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAA6UlEQVRYw+3XPQqEMBAF4Jdgr52VYBpvIlZWoodUUll5Ae+gjYKVnb1gttrFakGdJYGd1Al8+XvDAI4NAQDDMDgDkq6dEIMYxKC/A3lXF+z7bvq+h1IKaZqKb3PvBK73i122bWt83/9UAqtXprU24zhiXVccx2H3DWmtzTzPiKIIZVkKKaU90BlTVZWw+suoMCQgSsxjUNd1ZpomBEFAgnkMyrJMKKWwbRvqujZOJHVRFCKOYyzLQoIiedSUKLJvT4UiDcYzqmkaYz2p36gkSRCGIe4k9U+Ka57nt9sr7ssYxCAGMYhBF8cLoc5sGgK/ZxQAAAAASUVORK5CYII=")}CommonExtend(CDrawingButtonBackwardToStart,CDrawingButtonBase);CDrawingButtonBackwardToStart.prototype.private_DrawOnCanvas=function(b,e,h,g,f,c,j,i,d){var a=(f?this.m_oImageDisabled:this.m_oImage);if(a){b.drawImage(a,0,0)}};CDrawingButtonBackwardToStart.prototype.private_HandleMouseDown=function(){this.m_oGameTree.Step_BackwardToStart()};CDrawingButtonBackwardToStart.prototype.private_GetHint=function(){return(window.g_oLocalization?window.g_oLocalization.gameRoom.button.hint.backwardStart:"Back to the start")+" (Ctrl+Shift+Left)"};CDrawingButtonBackwardToStart.prototype.private_RegisterButton=function(){this.m_oDrawing.Register_BackwardToStartButton(this)};function CDrawingButtonBackward5(a){CDrawingButtonBackward5.superclass.constructor.call(this,a);this.m_oImage=this.private_AddImageToLoad("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3wwTDRwVK5I7zwAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAcUlEQVRYw+3VwQnAIAyFYVu6UJbqDB0vh9xFcA7xHALpCAptpbXvO77TDwENAQAAfkBECjPvvfujYoyuql5r9Z59SIyqekrJW/uwmJyzt3bETBuzfv7NedXJEDVV1F1fx3Y1iIgWESlmdvTsAAAAszsB2vBQahKN40YAAAAASUVORK5CYII=");this.m_oImageDisabled=this.private_AddImageToLoad("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3wwTDSMBaZbFjgAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAA80lEQVRYw+3XvQqDMBQF4HNtcBOsc0fBB9DB53dScHB1cepWcMkWxNulFilU1Cb9457xLPlIokkIt7Rti08mSRIAgIcvi4AEJCAB/QXIGMPDMPCsOj7pn+VkDaS15qIo0DQNmO9jH+b9ipytgLTWXFUVmBlxHIOIpv4y79+yZBNmHEekaYowDGmpXxu1F1OWJZgZWZYhiiJa6p3OkEvMZpBrzO//h4IgoDzPQUSo6xp93/NS/5YZco3atWQuUbv3kCvUS5t6PnjXdfej47HfErLxDDLGsOd5UErRmn7pGaRsfKq+79OWXi5oAhKQgAQkIIu5AvJV2EqdOHDMAAAAAElFTkSuQmCC")}CommonExtend(CDrawingButtonBackward5,CDrawingButtonBase);CDrawingButtonBackward5.prototype.private_DrawOnCanvas=function(b,e,h,g,f,c,j,i,d){var a=(f?this.m_oImageDisabled:this.m_oImage);if(a){b.drawImage(a,0,0)}};CDrawingButtonBackward5.prototype.private_HandleMouseDown=function(){this.m_oGameTree.Step_Backward(5)};CDrawingButtonBackward5.prototype.private_GetHint=function(){return(window.g_oLocalization?window.g_oLocalization.gameRoom.button.hint.backward5:"Back 5 moves")+" (Ctrl+Left)"};CDrawingButtonBackward5.prototype.private_RegisterButton=function(){this.m_oDrawing.Register_Backward_5Button(this)};function CDrawingButtonBackward(a){CDrawingButtonBackward.superclass.constructor.call(this,a);this.m_oImage=this.private_AddImageToLoad("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3wwTDSUz9xsziAAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAxUlEQVRYw+3VIQ7DMAwF0J+ppHABQSEhISVBPdLOsKvsEr1NSKQoKi0oq0IqdbQabN0lquwTPNnfthiGATXVA5UVgxjEIAbdDqSUmqWUrypAxpit7/unc+7Ttm1ZkDFm67oOADCOI3LO5UB7TAgBMUZRbGS/mBCCKBZqaswp0BWYe92hlJLw3gMArLWw1m7FO3QF6vTIqFEkGaJEkYV6j9Ja4+jraCg3JKUklmWZ13V9H30dDfXaTtMk+Q4xiEEMYhCD/lhfy3RcBznfWwkAAAAASUVORK5CYII=");this.m_oImageDisabled=this.private_AddImageToLoad("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3wwTDSgeB2oRsAAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAx0lEQVRYw+3XMQqEMBAF0D8h2AniGbyBFp7fSiGFrY1HsEkXxL/VwtY6bkTmHyA8kskPEQBYlgVPicPDYiADGchArwOllLjvOx8BijFyGAbM8wySeUExRk7TBJJomgYikg/0xRzHgbZtUVWVnF3La2DGcQRJdF2Huq4l21BrYy6B7sC8q4fKspS+7yEiCCFg2zZm36E7UJePTBulMkOaKLWh/kWt63r66RDtb1BKic45eO9P1YDXvrZFUYj1kIEMZCADGeiP+QAy+XDf76BlKwAAAABJRU5ErkJggg==")}CommonExtend(CDrawingButtonBackward,CDrawingButtonBase);CDrawingButtonBackward.prototype.private_DrawOnCanvas=function(b,e,h,g,f,c,j,i,d){var a=(f?this.m_oImageDisabled:this.m_oImage);if(a){b.drawImage(a,0,0)}};CDrawingButtonBackward.prototype.private_HandleMouseDown=function(){this.m_oGameTree.Step_Backward(1)};CDrawingButtonBackward.prototype.private_GetHint=function(){return(window.g_oLocalization?window.g_oLocalization.gameRoom.button.hint.backward1:"Back")+" (Left)"};CDrawingButtonBackward.prototype.private_RegisterButton=function(){this.m_oDrawing.Register_BackwardButton(this)};function CDrawingButtonForward(a){CDrawingButtonForward.superclass.constructor.call(this,a);this.m_oImage=this.private_AddImageToLoad("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3wwTDSkJnaKlNgAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAxUlEQVRYw+3WIQ7DIBQG4L8NBiQCVVODqeFU21V6he0QPUsNhqQh2AossrsDvKVseb8n+QL8D4Zt29BTRnQWBjGIQQz6WZDW+mGMydQgUbNISgnn3EspBe/9FWMcbt2hUgpSSgCAZVkwz/N1+5EdxzGEEMhRTZc6hECOam4ZNYqk9pSo/xyM1trLWgsA8N6jZQyMPWGaQdSYJtA3MNUgKSWmaSLHVL9lpRTs+/4UQqzneeouWpZzflNj+IPGIAYxiEEMqsgHyjhf9O2e3l4AAAAASUVORK5CYII=");this.m_oImageDisabled=this.private_AddImageToLoad("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3wwTDSgxrLss6QAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAyUlEQVRYw+3VsQqDUAwF0JvycBPEbxBcBR38ficFB1cXP8HFTSS3U3/Al9LXNtkDB5KbyLquSKXqusYDiZWDHOQgB30t6LounufJJEAksSwLhmHAcRz8OEhEUFUVSGKaJlPU7ZEVRSFt20JVTVFRS12WpXRdB1XFOI4mqOiUvVAkTVAmsbdE/eZh3Ped8zxDRND3PfI8l4+BLDHRIGtMFOgdmKjXsW2bOQYAwt3X0TQNVBVZlollysLtxhAk2dg7yEEOcpCD/gn0BPdVbmFsgto0AAAAAElFTkSuQmCC")}CommonExtend(CDrawingButtonForward,CDrawingButtonBase);CDrawingButtonForward.prototype.private_DrawOnCanvas=function(b,e,h,g,f,c,j,i,d){var a=(f?this.m_oImageDisabled:this.m_oImage);if(a){b.drawImage(a,0,0)}};CDrawingButtonForward.prototype.private_HandleMouseDown=function(){this.m_oGameTree.Step_Forward(1)};CDrawingButtonForward.prototype.private_GetHint=function(){return(window.g_oLocalization?window.g_oLocalization.gameRoom.button.hint.forward1:"Forward")+" (Right)"};CDrawingButtonForward.prototype.private_RegisterButton=function(){this.m_oDrawing.Register_ForwardButton(this)};function CDrawingButtonForward5(a){CDrawingButtonForward5.superclass.constructor.call(this,a);this.m_oImage=this.private_AddImageToLoad("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3wwTDSQ2nmr2RgAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAZUlEQVRYw+3VMQrAIAyFYelhe84M7kHwHMU5S3qAVnCxpOH/xrfkQdCUAgBIRETOWuu1mm83xnAzc1X1lXy71pqb2WP4LP9E7/11+CynVPpSR5o/KdTKKPOblxXudIQ7rgAABHQDS2dNsnKXx6sAAAAASUVORK5CYII=");this.m_oImageDisabled=this.private_AddImageToLoad("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3wwTDSQYQrz7iQAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAxElEQVRYw+2VPQuDMBCG30j/QIduHQP5AQr6/5cQyBAQBxenbl0C2b0uOhQSxI8ULfdM4eXgHnJHAjAMwzAXoe/751JN13XUti1N9fdYvpfbfFBKvZaKnXPw3sNaSwAesbyqKrFHqFhTLKUEEcEYgxDCO5ZPsr8RqutalGWJcRy/mqfyLWy6Xq01WWshhEDTNJjHlMqzC+WU2rWAOaSKsz0//zGyUy11TpnVQrllVi/1MAzRpqk8O6lP9MjPlWEYhmGuzgcvy8ThfV4IDQAAAABJRU5ErkJggg==")}CommonExtend(CDrawingButtonForward5,CDrawingButtonBase);CDrawingButtonForward5.prototype.private_DrawOnCanvas=function(b,e,h,g,f,c,j,i,d){var a=(f?this.m_oImageDisabled:this.m_oImage);if(a){b.drawImage(a,0,0)}};CDrawingButtonForward5.prototype.private_HandleMouseDown=function(){this.m_oGameTree.Step_Forward(5)};CDrawingButtonForward5.prototype.private_GetHint=function(){return(window.g_oLocalization?window.g_oLocalization.gameRoom.button.hint.forward5:"Forward 5 moves")+" (Ctrl+Right)"};CDrawingButtonForward5.prototype.private_RegisterButton=function(){this.m_oDrawing.Register_Forward_5Button(this)};function CDrawingButtonForwardToEnd(a){CDrawingButtonForwardToEnd.superclass.constructor.call(this,a);this.m_oImage=this.private_AddImageToLoad("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3wwTDRAjSJ3hWgAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAABBElEQVRYw+3WwYmFMBAG4D8PvUgIiKYJERQv2oJXYatcsA4Pqxh42EQQIQQPImRr2DyzesgUMHyZyUwCPCxI3/ePwXRdh9fTKuRBHuRBHnRFVFVl2rY1nPOffwHleW7qujZBEFx+mD9npJQijmOkaYowDM0wDOQ8z/taprWGEIKs6wrOOZqmubRSVi1TSmGeZyco60vtCvXRlLlAfTz2Siksy/K97zs45yiKwtwKYowhy7KvKIogpYQQgtwGYoyhLEuTJAmklLhiBbyehLEGucJYgSilKIrCCcbq6dBaY9s2HMeBcRwvxViBAOD9fhM4isBF0mmayG17yP8YPciDPMiDHMcvBCGFxBHbK9gAAAAASUVORK5CYII=");this.m_oImageDisabled=this.private_AddImageToLoad("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3wwTDQ4kArhLJgAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAA9UlEQVRYw+3WsY6FIBAF0CtQWNjTEWw0Uf+/9x/URBsNVnQmdhqZ1+wPLMo+s2H6S85MYALwskrGcXwNpixLsLdNKIIiKIIi6IkyxlDbtnSe59+ArLU0TROFaEb8NuCcg7UWxhgcx0FN0yRfBTHGUNd1QkS0LAsAPIoSPiHOOX4Qj6OEbzAUStwJh0CJux1xzlFVVbLvO83zjCzLiDH2vT10XReGYaBt25DnObTWtybE7mK6rqN1XaG1xhN3iL0J4w0KhfECOefQ930QjPemllIiTVMURfEoxvvZSykTKWWQ74cIcahSKlFKxQ9aBEVQBEXQv6wPn1Z3S2AlDhEAAAAASUVORK5CYII=")}CommonExtend(CDrawingButtonForwardToEnd,CDrawingButtonBase);CDrawingButtonForwardToEnd.prototype.private_DrawOnCanvas=function(b,e,h,g,f,c,j,i,d){var a=(f?this.m_oImageDisabled:this.m_oImage);if(a){b.drawImage(a,0,0)}};CDrawingButtonForwardToEnd.prototype.private_HandleMouseDown=function(){this.m_oGameTree.Step_ForwardToEnd()};CDrawingButtonForwardToEnd.prototype.private_GetHint=function(){return(window.g_oLocalization?window.g_oLocalization.gameRoom.button.hint.forwardEnd:"Go to the end")+" (Ctrl+Shift+Right)"};CDrawingButtonForwardToEnd.prototype.private_RegisterButton=function(){this.m_oDrawing.Register_ForwardToEndButton(this)};function CDrawingButtonNextVariant(a){CDrawingButtonNextVariant.superclass.constructor.call(this,a)}CommonExtend(CDrawingButtonNextVariant,CDrawingButtonBase);CDrawingButtonNextVariant.prototype.private_DrawOnCanvas=function(m,n,k,a,p,b,l,j,i){var s=Math.ceil(k+0.2*n+0.5);var r=Math.ceil(k+0.35*n+0.5);var q=Math.ceil(k+0.57*n+0.5);var o=Math.ceil(k+0.92*n+0.5);var h=Math.ceil(a+0.2*n+0.5);var g=Math.ceil(a+0.38*n+0.5);var f=Math.ceil(a+0.52*n+0.5);var e=Math.ceil(a+0.6*n+0.5);var d=Math.ceil(a+0.68*n+0.5);var c=Math.ceil(a+0.84*n+0.5);m.beginPath();m.moveTo(s,h);m.lineTo(r,h);m.lineTo(r,f);m.lineTo(q,f);m.lineTo(q,g);m.lineTo(o,e);m.lineTo(q,c);m.lineTo(q,d);m.lineTo(s,d);m.closePath();m.fill()};CDrawingButtonNextVariant.prototype.private_HandleMouseDown=function(){this.m_oGameTree.GoTo_NextVariant()};CDrawingButtonNextVariant.prototype.private_GetHint=function(){return(window.g_oLocalization?window.g_oLocalization.gameRoom.button.hint.nextVariant:"Next variant")+" (Down)"};CDrawingButtonNextVariant.prototype.private_RegisterButton=function(){this.m_oDrawing.Register_NextVariantButton(this)};function CDrawingButtonPrevVariant(a){CDrawingButtonPrevVariant.superclass.constructor.call(this,a)}CommonExtend(CDrawingButtonPrevVariant,CDrawingButtonBase);CDrawingButtonPrevVariant.prototype.private_DrawOnCanvas=function(m,n,k,a,p,b,l,j,i){var s=Math.ceil(k+0.2*n+0.5);var r=Math.ceil(k+0.35*n+0.5);var q=Math.ceil(k+0.57*n+0.5);var o=Math.ceil(k+0.92*n+0.5);var h=Math.ceil(a+(1-0.2)*n+0.5);var g=Math.ceil(a+(1-0.38)*n+0.5);var f=Math.ceil(a+(1-0.52)*n+0.5);var e=Math.ceil(a+(1-0.6)*n+0.5);var d=Math.ceil(a+(1-0.68)*n+0.5);var c=Math.ceil(a+(1-0.84)*n+0.5);m.beginPath();m.moveTo(s,h);m.lineTo(r,h);m.lineTo(r,f);m.lineTo(q,f);m.lineTo(q,g);m.lineTo(o,e);m.lineTo(q,c);m.lineTo(q,d);m.lineTo(s,d);m.closePath();m.fill()};CDrawingButtonPrevVariant.prototype.private_HandleMouseDown=function(){this.m_oGameTree.GoTo_PrevVariant()};CDrawingButtonPrevVariant.prototype.private_GetHint=function(){return(window.g_oLocalization?window.g_oLocalization.gameRoom.button.hint.prevVariant:"Previous variant")+" (Up)"};CDrawingButtonPrevVariant.prototype.private_RegisterButton=function(){this.m_oDrawing.Register_PrevVariantButton(this)};function CDrawingButtonEditModeMove(a){CDrawingButtonEditModeMove.superclass.constructor.call(this,a)}CommonExtend(CDrawingButtonEditModeMove,CDrawingButtonBase);CDrawingButtonEditModeMove.prototype.private_DrawOnCanvas=function(c,f,j,i,g,d,l,k,e){var b=Math.ceil(j+0.5*f-f/10+0.5);var a=Math.ceil(i+0.5*f-f/10+0.5);var h=Math.ceil(0.25*f+0.5);c.fillStyle=(new CColor(255,255,255)).ToString();c.strokeStyle=(new CColor(0,0,0)).ToString();c.beginPath();c.arc(b,a,h,0,2*Math.PI,false);c.fill();c.stroke();c.fillStyle=(new CColor(0,0,0)).ToString();b=Math.ceil(j+0.5*f+f/10+0.5);a=Math.ceil(i+0.5*f+f/10+0.5);h=Math.ceil(0.25*f+0.5);c.beginPath();c.arc(b,a,h,0,2*Math.PI,false);c.fill()};CDrawingButtonEditModeMove.prototype.private_HandleMouseDown=function(){this.m_oGameTree.Get_DrawingBoard().Set_Mode(EBoardMode.Move)};CDrawingButtonEditModeMove.prototype.private_GetHint=function(){return(window.g_oLocalization?window.g_oLocalization.gameRoom.button.hint.editModeMoves:"Moves")+" (F1)"};CDrawingButtonEditModeMove.prototype.private_RegisterButton=function(){this.m_oDrawing.Register_EditModeMoveButton(this)};function CDrawingButtonEditModeAddRem(a){CDrawingButtonEditModeAddRem.superclass.constructor.call(this,a)}CommonExtend(CDrawingButtonEditModeAddRem,CDrawingButtonBase);CDrawingButtonEditModeAddRem.prototype.private_DrawOnCanvas=function(d,g,k,j,h,e,n,l,f){var c=Math.ceil(k+0.75*g+0.5);var a=Math.ceil(j+0.125*g+0.5);var b=Math.ceil(0.25*g+0.5);var m=Math.ceil(0.02*g+0.5);var i;d.fillRect(c,a,b,m);c=Math.ceil(k+0.875*g+0.5);a=Math.ceil(j+0.5);b=Math.ceil(0.02*g+0.5);m=Math.ceil(0.25*g+0.5);d.fillRect(c,a,b,m);c=Math.ceil(k+0.5);a=Math.ceil(j+0.875*g+0.5);b=Math.ceil(0.25*g+0.5);m=Math.ceil(0.02*g+0.5);d.fillRect(c,a,b,m);c=Math.ceil(k+0.5*g-g/10+0.5);a=Math.ceil(j+0.5*g-g/10+0.5);i=Math.ceil(0.25*g+0.5);d.fillStyle=(new CColor(255,255,255)).ToString();d.strokeStyle=(new CColor(0,0,0)).ToString();d.beginPath();d.arc(c,a,i,0,2*Math.PI,false);d.fill();d.stroke();d.fillStyle=(new CColor(0,0,0)).ToString();c=Math.ceil(k+0.5*g+g/10+0.5);a=Math.ceil(j+0.5*g+g/10+0.5);i=Math.ceil(0.25*g+0.5);d.beginPath();d.arc(c,a,i,0,2*Math.PI,false);d.fill()};CDrawingButtonEditModeAddRem.prototype.private_HandleMouseDown=function(){this.m_oGameTree.Get_DrawingBoard().Set_Mode(EBoardMode.AddRemove)};CDrawingButtonEditModeAddRem.prototype.private_GetHint=function(){return(window.g_oLocalization?window.g_oLocalization.gameRoom.button.hint.editModeEditor:"Editor")+" (F3)"};CDrawingButtonEditModeAddRem.prototype.private_RegisterButton=function(){this.m_oDrawing.Register_EditModeAddRemButton(this)};function CDrawingButtonEditModeTr(a){CDrawingButtonEditModeTr.superclass.constructor.call(this,a)}CommonExtend(CDrawingButtonEditModeTr,CDrawingButtonBase);CDrawingButtonEditModeTr.prototype.private_DrawOnCanvas=function(c,f,l,i,g,d,n,m,e){var a=f/2;var h=f*3/4;var b=f*0.1;var k=Math.sqrt(a*a-(h-a)*(h-a))+a;var j=-Math.sqrt(a*a-(h-a)*(h-a))+a;c.lineWidth=Math.ceil(0.05*f+0.5);c.beginPath();c.moveTo(l+f/2,i+2*b);c.lineTo(l+k-b,i+h+b);c.lineTo(l+j+b,i+h+b);c.closePath();c.stroke()};CDrawingButtonEditModeTr.prototype.private_HandleMouseDown=function(){this.m_oGameTree.Get_DrawingBoard().Set_Mode(EBoardMode.AddMarkTr)};CDrawingButtonEditModeTr.prototype.private_GetHint=function(){return(window.g_oLocalization?window.g_oLocalization.gameRoom.button.hint.editModeTriangles:"Triangles")+" (F4)"};CDrawingButtonEditModeTr.prototype.private_RegisterButton=function(){this.m_oDrawing.Register_EditModeTrButton(this)};function CDrawingButtonEditModeSq(a){CDrawingButtonEditModeSq.superclass.constructor.call(this,a)}CommonExtend(CDrawingButtonEditModeSq,CDrawingButtonBase);CDrawingButtonEditModeSq.prototype.private_DrawOnCanvas=function(l,s,i,a,t,d,j,h,f){var k=s/2;var o=0.05*s;var n=-s/2*Math.sqrt(2)/2+s/2;var m=s/2*Math.sqrt(2)/2+s/2;var g=Math.sqrt(k*k-(n-k)*(n-k))+k;var e=-Math.sqrt(k*k-(n-k)*(n-k))+k;var q=Math.floor(i+g-o);var p=Math.ceil(i+e+o);var c=Math.ceil(a+n+o);var b=Math.floor(a+m-o);l.lineWidth=Math.ceil(0.05*s+0.5);l.beginPath();l.moveTo(q,c);l.lineTo(p,c);l.lineTo(p,b);l.lineTo(q,b);l.closePath();l.stroke()};CDrawingButtonEditModeSq.prototype.private_HandleMouseDown=function(){this.m_oGameTree.Get_DrawingBoard().Set_Mode(EBoardMode.AddMarkSq)};CDrawingButtonEditModeSq.prototype.private_GetHint=function(){return(window.g_oLocalization?window.g_oLocalization.gameRoom.button.hint.editModeSquares:"Squares")+" (F5)"};CDrawingButtonEditModeSq.prototype.private_RegisterButton=function(){this.m_oDrawing.Register_EditModeSqButton(this)};function CDrawingButtonEditModeCr(a){CDrawingButtonEditModeCr.superclass.constructor.call(this,a)}CommonExtend(CDrawingButtonEditModeCr,CDrawingButtonBase);CDrawingButtonEditModeCr.prototype.private_DrawOnCanvas=function(d,g,j,i,h,e,l,k,f){var c=0.05*g;var a=g/2;var b=c*4;d.lineWidth=Math.ceil(c+0.5);d.beginPath();d.arc(j+g/2,i+g/2,a-b,0,2*Math.PI,false);d.stroke()};CDrawingButtonEditModeCr.prototype.private_HandleMouseDown=function(){this.m_oGameTree.Get_DrawingBoard().Set_Mode(EBoardMode.AddMarkCr)};CDrawingButtonEditModeCr.prototype.private_GetHint=function(){return(window.g_oLocalization?window.g_oLocalization.gameRoom.button.hint.editModeCircles:"Circles")+" (F6)"};CDrawingButtonEditModeCr.prototype.private_RegisterButton=function(){this.m_oDrawing.Register_EditModeCrButton(this)};function CDrawingButtonEditModeX(a){CDrawingButtonEditModeX.superclass.constructor.call(this,a)}CommonExtend(CDrawingButtonEditModeX,CDrawingButtonBase);CDrawingButtonEditModeX.prototype.private_DrawOnCanvas=function(b,g,j,i,h,c,l,k,f){var e=j+0.25*g;var d=j+0.75*g;var n=i+0.25*g;var m=i+0.75*g;var a=0.05*g;b.lineWidth=Math.ceil(a+0.5);b.beginPath();b.moveTo(e,n);b.lineTo(d,m);b.moveTo(d,n);b.lineTo(e,m);b.stroke()};CDrawingButtonEditModeX.prototype.private_HandleMouseDown=function(){this.m_oGameTree.Get_DrawingBoard().Set_Mode(EBoardMode.AddMarkX)};CDrawingButtonEditModeX.prototype.private_GetHint=function(){return(window.g_oLocalization?window.g_oLocalization.gameRoom.button.hint.editModeXMarks:"X marks")+" (F7)"};CDrawingButtonEditModeX.prototype.private_RegisterButton=function(){this.m_oDrawing.Register_EditModeXButton(this)};function CDrawingButtonEditModeText(a){CDrawingButtonEditModeText.superclass.constructor.call(this,a)}CommonExtend(CDrawingButtonEditModeText,CDrawingButtonBase);CDrawingButtonEditModeText.prototype.private_DrawOnCanvas=function(c,g,m,k,h,d,o,n,f){var e="A";var l=g*0.8;var j="Arial";var i=l+"px "+j;c.font=i;var a=k+g/2+l/3;var b=m+(g-c.measureText(e).width)/2;c.fillText(e,b,a)};CDrawingButtonEditModeText.prototype.private_HandleMouseDown=function(){this.m_oGameTree.Get_DrawingBoard().Set_Mode(EBoardMode.AddMarkTx)};CDrawingButtonEditModeText.prototype.private_GetHint=function(){return(window.g_oLocalization?window.g_oLocalization.gameRoom.button.hint.editModeText:"Text labels")+" (F8)"};CDrawingButtonEditModeText.prototype.private_RegisterButton=function(){this.m_oDrawing.Register_EditModeTextButton(this)};function CDrawingButtonEditModeNum(a){CDrawingButtonEditModeNum.superclass.constructor.call(this,a)}CommonExtend(CDrawingButtonEditModeNum,CDrawingButtonBase);CDrawingButtonEditModeNum.prototype.private_DrawOnCanvas=function(c,g,m,k,h,d,o,n,f){var e="1";var l=g*0.8;var j="Helvetica, Arial, Verdana";var i=l+"px "+j;c.font=i;var a=k+g/2+l/3;var b=m+(g-c.measureText(e).width)/2;c.fillText(e,b,a)};CDrawingButtonEditModeNum.prototype.private_HandleMouseDown=function(){this.m_oGameTree.Get_DrawingBoard().Set_Mode(EBoardMode.AddMarkNum)};CDrawingButtonEditModeNum.prototype.private_GetHint=function(){return(window.g_oLocalization?window.g_oLocalization.gameRoom.button.hint.editModeNumbers:"Numeric labels")+" (F9)"};CDrawingButtonEditModeNum.prototype.private_RegisterButton=function(){this.m_oDrawing.Register_EditModeNumButton(this)};function CDrawingButtonAutoPlay(a){CDrawingButtonAutoPlay.superclass.constructor.call(this,a)}CommonExtend(CDrawingButtonAutoPlay,CDrawingButtonBase);CDrawingButtonAutoPlay.prototype.private_DrawOnCanvas=function(a,d,l,j,f,b,o,m,c){if(EDrawingButtonState2.AutoPlayStopped===this.m_nState2){this.private_DrawTriangle(d,l,j,a,1)}else{var n=Math.floor(l+d/5+d/20+0.5);var h=Math.ceil(l+4*d/5-d/20+0.5);var k=Math.ceil(j+d/5+0.5);var g=Math.ceil(j+4*d/5+0.5);var i=Math.ceil(n+d/5);var e=Math.floor(h-d/5);a.beginPath();a.moveTo(n,k);a.lineTo(i,k);a.lineTo(i,g);a.lineTo(n,g);a.closePath();a.fill();a.beginPath();a.moveTo(h,k);a.lineTo(e,k);a.lineTo(e,g);a.lineTo(h,g);a.closePath();a.fill()}};CDrawingButtonAutoPlay.prototype.private_HandleMouseDown=function(){if(EDrawingButtonState2.AutoPlayStopped===this.m_nState2){this.m_oGameTree.Start_AutoPlay()}else{this.m_oGameTree.Stop_AutoPlay()}};CDrawingButtonAutoPlay.prototype.private_GetHint=function(){if(EDrawingButtonState2.AutoPlayStopped===this.m_nState2){return(window.g_oLocalization?window.g_oLocalization.gameRoom.button.hint.startAutoplay:"Start autoplay")}else{return(window.g_oLocalization?window.g_oLocalization.gameRoom.button.hint.stopAutoplay:"Stop autoplay")}};CDrawingButtonAutoPlay.prototype.private_RegisterButton=function(){this.m_oDrawing.Register_AutoPlayButton(this)};function CDrawingButtonClose(a){CDrawingButtonClose.superclass.constructor.call(this,a)}CommonExtend(CDrawingButtonClose,CDrawingButtonBase);CDrawingButtonClose.prototype.private_DrawOnCanvas=function(q,t,k,a,u,e,n,j,i){var h=q.createImageData(e,n);var f=h.data;var k=(e-8)/2|0;var a=(n-8)/2|0;for(var c=0;c<n;c++){for(var d=0;d<e;d++){var o=(d+c*e)*4;var p=i.r;var s=i.g;var v=i.b;var l=c-a;var m=d-k;if((0===l&&(0===m||1===m||6===m||7===m))||(1===l&&(1===m||2===m||5===m||6===m))||(2===l&&(2===m||3===m||4===m||5===m))||(3===l&&(3===m||4===m))||(4===l&&(3===m||4===m))||(5===l&&(2===m||3===m||4===m||5===m))||(6===l&&(1===m||2===m||5===m||6===m))||(7===l&&(0===m||1===m||6===m||7===m))){p=255;s=255;v=255}f[o+0]=p;f[o+1]=s;f[o+2]=v;f[o+3]=255}}q.putImageData(h,0,0)};CDrawingButtonClose.prototype.private_HandleMouseDown=function(){this.m_oGameTree.Close()};CDrawingButtonClose.prototype.private_GetHint=function(){return(window.g_oLocalization?window.g_oLocalization.common.button.close:"Close")};CDrawingButtonClose.prototype.private_ClickTransformIn=function(){};CDrawingButtonClose.prototype.private_ClickTransformOut=function(){};CDrawingButtonClose.prototype.private_DrawSelectionBounds=function(b,a,c){};function CDrawingButtonGameInfo(a){CDrawingButtonGameInfo.superclass.constructor.call(this,a)}CommonExtend(CDrawingButtonGameInfo,CDrawingButtonBase);CDrawingButtonGameInfo.prototype.private_DrawOnCanvas=function(m,q,j,a,s,d,k,i,h){var g=0.02*q;var l=q/2;var p=g*4;m.lineWidth=Math.ceil(g+0.5);m.beginPath();m.arc(j+q/2,a+q/2,l-p,0,2*Math.PI,false);m.stroke();var o="i";var e=q*0.9;var f="Times New Roman, Sans serif";var n=e+"px "+f;m.font=n;var b=a+q/2+e/3;var c=j+(q-m.measureText(o).width)/2;m.fillText(o,c,b)};CDrawingButtonGameInfo.prototype.private_HandleMouseDown=function(){CreateWindow(this.HtmlElement.Control.HtmlElement.id,EWindowType.GameInfo,{GameTree:this.m_oGameTree,Drawing:this.m_oDrawing})};CDrawingButtonGameInfo.prototype.private_GetHint=function(){return(window.g_oLocalization?window.g_oLocalization.gameRoom.button.hint.gameInfo:"Game info")};function CDrawingButtonOK(a){CDrawingButtonOK.superclass.constructor.call(this,a)}CommonExtend(CDrawingButtonOK,CDrawingButtonBase);CDrawingButtonOK.prototype.private_DrawOnCanvas=function(c,h,n,l,i,d,p,o,g){var f="OK";if(window.g_oLocalization){f=window.g_oLocalization.common.button.ok}c.lineWidth=1;c.moveTo(0,0);c.lineTo(0,p);c.lineTo(d,p);c.lineTo(d,0);c.lineTo(0,0);c.stroke();var e=f;var m=h*0.8;var k="Tahoma, Sans serif";var j=m+"px "+k;c.fillStyle=(new CColor(0,0,0,255)).ToString();c.font=j;var a=l+h/2+m/3;var b=n+(h-c.measureText(e).width)/2;c.fillText(e,b,a)};CDrawingButtonOK.prototype.private_HandleMouseDown=function(){this.m_oGameTree.Handle_OK()};CDrawingButtonOK.prototype.private_GetHint=function(){var a="OK";if(window.g_oLocalization){a=window.g_oLocalization.common.button.ok}return a};CDrawingButtonOK.prototype.private_ClickTransformIn=function(){};CDrawingButtonOK.prototype.private_ClickTransformOut=function(){};CDrawingButtonOK.prototype.private_DrawSelectionBounds=function(b,a,c){};function CDrawingButtonCancel(a){CDrawingButtonCancel.superclass.constructor.call(this,a)}CommonExtend(CDrawingButtonCancel,CDrawingButtonBase);CDrawingButtonCancel.prototype.private_DrawOnCanvas=function(c,g,n,l,h,d,p,o,f){var i="Cancel";if(window.g_oLocalization){i=window.g_oLocalization.common.button.cancel}c.lineWidth=1;c.moveTo(0,0);c.lineTo(0,p);c.lineTo(d,p);c.lineTo(d,0);c.lineTo(0,0);c.stroke();var e=i;var m=g*0.8;var k="Tahoma, Sans serif";var j=m+"px "+k;c.fillStyle=(new CColor(0,0,0,255)).ToString();c.font=j;var a=l+g/2+m/3;var b=n+(g-c.measureText(e).width)/2;c.fillText(e,b,a)};CDrawingButtonCancel.prototype.private_HandleMouseDown=function(){this.m_oGameTree.Handle_Cancel()};CDrawingButtonCancel.prototype.private_GetHint=function(){var a="Cancel";if(window.g_oLocalization){a=window.g_oLocalization.common.button.cancel}return a};CDrawingButtonCancel.prototype.private_ClickTransformIn=function(){};CDrawingButtonCancel.prototype.private_ClickTransformOut=function(){};CDrawingButtonCancel.prototype.private_DrawSelectionBounds=function(b,a,c){};function CDrawingButtonSettings(a){CDrawingButtonSettings.superclass.constructor.call(this,a);this.m_oTransformCanvas=null}CommonExtend(CDrawingButtonSettings,CDrawingButtonBase);CDrawingButtonSettings.prototype.Init=function(c,d){CDrawingButtonToolbarCustomize.superclass.Init.apply(this,arguments);var b=this.HtmlElement.Control.HtmlElement;var e=document.createElement("canvas");e.setAttribute("id",c+"_transform");e.setAttribute("style","position:absolute;padding:0;margin:0;");e.setAttribute("oncontextmenu","return false;");e.width=36;e.height=36;e.draggable="false";e.ondragstart=function(f){f.preventDefault();return false};b.appendChild(e);var a=CreateControlContainer(c+"_canvas");a.Bounds.SetParams(0,0,1000,1000,false,false,false,false,-1,-1);a.Anchor=(g_anchor_top|g_anchor_left|g_anchor_bottom|g_anchor_right);this.HtmlElement.Control.AddControl(a);this.m_oTransformCanvas=e};CDrawingButtonSettings.prototype.private_DrawOnCanvas=function(q,j,m,l,k,f,p,n,g){var e=this.m_oTransformCanvas.getContext("2d");e.fillStyle=q.fillStyle;e.strokeStyle=q.strokeStyle;var d=0.02*j;var c=j/2-j/30;var b=d*4;var a=j/4;e.lineWidth=Math.ceil(d*7+0.5);e.beginPath();e.arc(m+j/2,l+j/2,a,0,2*Math.PI,false);e.stroke();e.lineWidth=Math.ceil(d*5+0.5);for(var i=0,h=9;i<h;i++){e.beginPath();var o=(360/h*i)*Math.PI/180;e.lineTo(m+a*Math.cos(o)+j/2,l-a*Math.sin(o)+j/2);e.lineTo(m+c*Math.cos(o)+j/2,l-c*Math.sin(o)+j/2);e.stroke()}};CDrawingButtonSettings.prototype.private_HandleMouseDown=function(){CreateWindow(this.HtmlElement.Control.HtmlElement.id,EWindowType.Settings,{GameTree:this.m_oGameTree,Drawing:this.m_oDrawing});if("rotate(90deg)"!==this.m_oTransformCanvas.style.transform){this.m_oTransformCanvas.style.transition="transform 0.5s linear";this.m_oTransformCanvas.style.transform="rotate(90deg)"}else{this.m_oTransformCanvas.style.transition="transform 0.5s linear";this.m_oTransformCanvas.style.transform="rotate(0deg)"}};CDrawingButtonSettings.prototype.private_GetHint=function(){return"Settings"};function CDrawingButtonPass(a){CDrawingButtonPass.superclass.constructor.call(this,a)}CommonExtend(CDrawingButtonPass,CDrawingButtonBase);CDrawingButtonPass.prototype.private_DrawOnCanvas=function(c,g,m,k,h,d,o,n,f){var e=(window.g_oLocalization?window.g_oLocalization.gameRoom.button.pass:"Pass");var l=g*0.9;var j="Times New Roman, Sans serif";var i=l+"px "+j;c.font=i;var a=k+g/2+l/3;var b=m+(g-c.measureText(e).width)/2;c.fillText(e,b,a)};CDrawingButtonPass.prototype.private_HandleMouseDown=function(){this.m_oGameTree.Pass()};CDrawingButtonPass.prototype.private_GetHint=function(){return(window.g_oLocalization?window.g_oLocalization.gameRoom.button.pass:"Pass")};function CDrawingButtonAbout(a){CDrawingButtonAbout.superclass.constructor.call(this,a)}CommonExtend(CDrawingButtonAbout,CDrawingButtonBase);CDrawingButtonAbout.prototype.private_DrawOnCanvas=function(m,q,j,a,s,d,k,i,h){var g=0.02*q;var l=q/2;var p=g*4;m.lineWidth=Math.ceil(g+0.5);m.beginPath();m.arc(j+q/2,a+q/2,l-p,0,2*Math.PI,false);m.stroke();var o="?";var e=q*0.9;var f="Times New Roman, Sans serif";var n=e+"px "+f;m.font=n;var b=a+q/2+e/3;var c=j+(q-m.measureText(o).width)/2;m.fillText(o,c,b)};CDrawingButtonAbout.prototype.private_HandleMouseDown=function(){CreateWindow(this.HtmlElement.Control.HtmlElement.id,EWindowType.About,{GameTree:this.m_oGameTree,Drawing:this.m_oDrawing})};CDrawingButtonAbout.prototype.private_GetHint=function(){return"About"};function CDrawingButtonTabComments(a){CDrawingButtonTabComments.superclass.constructor.call(this,a)}CommonExtend(CDrawingButtonTabComments,CDrawingButtonBase);CDrawingButtonTabComments.prototype.private_DrawOnCanvas=function(c,g,j,i,h,e,m,k,f){var p=Math.ceil(j+3*g/20+0.5);var o=Math.ceil(j+16*g/20+0.5);var n=Math.ceil(j+14*g/20+0.5);var l=Math.ceil(j+11*g/20+0.5);var d=Math.ceil(i+5*g/20+0.5);var b=Math.ceil(i+14*g/20+0.5);var a=Math.ceil(i+18*g/20+0.5);c.lineWidth=2;c.beginPath();c.moveTo(p,d);c.lineTo(o,d);c.lineTo(o,b);c.lineTo(n,b);c.lineTo(n,a);c.lineTo(l,b);c.lineTo(p,b);c.closePath();c.stroke()};CDrawingButtonTabComments.prototype.private_HandleMouseDown=function(){this.m_oParent.Select(this)};CDrawingButtonTabComments.prototype.private_GetHint=function(){return"Comments"};function CDrawingButtonTabNavigator(a){CDrawingButtonTabNavigator.superclass.constructor.call(this,a)}CommonExtend(CDrawingButtonTabNavigator,CDrawingButtonBase);CDrawingButtonTabNavigator.prototype.private_DrawOnCanvas=function(c,f,k,j,g,d,n,l,e){var q=k+0;var p=k+5*f/20;var o=k+15*f/20;var m=k+f;var b=j+6*f/20;var a=j+16*f/20;var h=(f/6+1)|0;var i=2;c.lineWidth=2;c.lineJoin="miter";c.strokeStyle="rgba(0,0,0, 1)";c.beginPath();c.moveTo((q-i)|0,b|0);c.lineTo((m+i)|0,b|0);c.stroke();c.beginPath();c.moveTo(p|0,b|0);c.lineTo(p|0,a|0);c.lineTo((m+i)|0,a|0);c.stroke();c.lineWidth=1;c.strokeStyle=(new CColor(0,0,0)).ToString();c.fillStyle=(new CColor(255,255,255)).ToString();c.beginPath();c.arc(o,b,h,0,2*Math.PI,false);c.fill();c.stroke();c.beginPath();c.arc(o,a,h,0,2*Math.PI,false);c.fill();c.stroke();c.fillStyle=(new CColor(0,0,0)).ToString();c.beginPath();c.arc(p,b,h,0,2*Math.PI,false);c.fill()};CDrawingButtonTabNavigator.prototype.private_HandleMouseDown=function(){this.m_oParent.Select(this)};CDrawingButtonTabNavigator.prototype.private_GetHint=function(){return"Navigator"};function CDrawingButtonBoardMode(d){CDrawingButtonBoardMode.superclass.constructor.call(this,d);var b=d.Get_MainDiv();var e=this;var a=10;this.m_nWidth=4+36*a+(a-1);this.m_nHeight=40;var c=document.createElement("div");c.id=b.id+"ButtonBoardModeToolbarWrapper";c.style.position="absolute";c.style.top="100px";c.style.left="100px";c.style.width=this.m_nWidth+"px";c.style.height=this.m_nHeight+"px";c.style.background="rgb(217, 217, 217)";c.style.display="block";c.style.border="1px solid rgb(166, 166, 166)";c.style.boxShadow="0px 1px 15px rgba(0,0,0,0.8)";c.style.opacity=0;c.style.overflowY="hidden";c.style.boxSizing="border-box";c.onclick=function(){e.Hide_Toolbar()};b.appendChild(c);var g=document.createElement("div");g.id=b.id+"ButtonBoardModeToolbar";g.style.position="absolute";g.style.top="1px";g.style.left="1px";g.style.right="1px";g.style.bottom="1px";c.appendChild(g);this.m_oButtonMove=new CDrawingButtonEditModeMove(d);this.m_oButtonAddRem=new CDrawingButtonEditModeAddRem(d);this.m_oButtonTr=new CDrawingButtonEditModeTr(d);this.m_oButtonSq=new CDrawingButtonEditModeSq(d);this.m_oButtonCr=new CDrawingButtonEditModeCr(d);this.m_oButtonX=new CDrawingButtonEditModeX(d);this.m_oButtonText=new CDrawingButtonEditModeText(d);this.m_oButtonNum=new CDrawingButtonEditModeNum(d);this.m_oButtonColor=new CDrawingButtonEditModeColor(d);var f=new CDrawingToolbar(d);f.Add_Control(this.m_oButtonMove,36,1,EToolbarFloat.Left);f.Add_Control(this.m_oButtonAddRem,36,1,EToolbarFloat.Left);f.Add_Control(this.m_oButtonTr,36,1,EToolbarFloat.Left);f.Add_Control(this.m_oButtonSq,36,1,EToolbarFloat.Left);f.Add_Control(this.m_oButtonCr,36,1,EToolbarFloat.Left);f.Add_Control(this.m_oButtonX,36,1,EToolbarFloat.Left);f.Add_Control(this.m_oButtonText,36,1,EToolbarFloat.Left);f.Add_Control(this.m_oButtonNum,36,1,EToolbarFloat.Left);f.Add_Control(this.m_oButtonColor,36,1,EToolbarFloat.Left);f.Init(g.id,d.Get_GameTree());f.Update_Size();c.style.display="none";this.m_oToolbarElement=c;this.m_nTransitionId=null;this.m_nTop=0;c.style.transitionProperty="opacity,top,height";c.style.transitionDuration="1s";c.style.transitionTimingFunction="cubic-bezier(0,0,0,1)";c.style.transitionDelay="0s";this.m_eMode=null;this.m_nShowToolbarId=null}CommonExtend(CDrawingButtonBoardMode,CDrawingButtonBase);CDrawingButtonBoardMode.prototype.Update_Size=function(){CDrawingButtonBoardMode.superclass.Update_Size.apply(this,arguments);var a=this.m_oDrawing.Get_ElementOffset(this.HtmlElement.Control.HtmlElement);var d=a.X-this.m_nWidth/2+36/2;var c=a.Y-50;var f=this.m_oDrawing.Get_Width();var b=this.m_oDrawing.Get_Height();var e=5;if(d+this.m_nWidth>f-e){d=f-e-this.m_nWidth}if(d<e){d=e}if(c+this.m_nHeight>b-e){c=b-e-this.m_nHeight}if(c<e){c=e}this.m_nTop=c;this.m_oToolbarElement.style.left=d+"px";this.m_oToolbarElement.style.top=c+"px"};CDrawingButtonBoardMode.prototype.private_DrawOnCanvas=function(a,d,g,f,e,b,i,h,c){};CDrawingButtonBoardMode.prototype.private_HandleMouseDown=function(){if("none"===this.m_oToolbarElement.style.display){if(null===this.m_nShowToolbarId){var a=this;this.m_nShowToolbarId=setTimeout(function(){if(null!==a.m_nTransitionId){clearTimeout(a.m_nTransitionId);a.m_nTransitionId=null}a.m_oToolbarElement.style.display="block";a.m_oToolbarElement.style.opacity=0;a.m_oToolbarElement.style.top=(a.m_nTop+50)+"px";a.m_oToolbarElement.style.height="0px";var b=a;a.m_nTransitionId=setTimeout(function(){b.m_oToolbarElement.style.opacity=1;b.m_oToolbarElement.style.top=b.m_nTop+"px";b.m_oToolbarElement.style.height=b.m_nHeight+"px";b.m_nTransitionId=null;b.m_nShowToolbarId=null},20)},20)}}else{this.Hide_Toolbar()}};CDrawingButtonBoardMode.prototype.private_GetHint=function(){return(window.g_oLocalization?window.g_oLocalization.gameRoom.button.hint.editMode:"Select Edit mode")+" (F1-F10)"};CDrawingButtonBoardMode.prototype.private_RegisterButton=function(){this.m_oDrawing.Register_SelectBoardModeButton(this)};CDrawingButtonBoardMode.prototype.On_UpdateBoardMode=function(a){if(this.m_eMode===a){return}this.m_eMode=a;switch(a){case EBoardMode.Move:this.m_oImageData=this.m_oButtonMove.m_oImageData;break;case EBoardMode.AddRemove:this.m_oImageData=this.m_oButtonAddRem.m_oImageData;break;case EBoardMode.AddMarkTr:this.m_oImageData=this.m_oButtonTr.m_oImageData;break;case EBoardMode.AddMarkSq:this.m_oImageData=this.m_oButtonSq.m_oImageData;break;case EBoardMode.AddMarkCr:this.m_oImageData=this.m_oButtonCr.m_oImageData;break;case EBoardMode.AddMarkX:this.m_oImageData=this.m_oButtonX.m_oImageData;break;case EBoardMode.AddMarkTx:this.m_oImageData=this.m_oButtonText.m_oImageData;break;case EBoardMode.AddMarkNum:this.m_oImageData=this.m_oButtonNum.m_oImageData;break;case EBoardMode.AddMarkColor:this.m_oImageData=this.m_oButtonColor.m_oImageData;break}this.private_UpdateState()};CDrawingButtonBoardMode.prototype.private_OnResize=function(){this.private_UpdateState()};CDrawingButtonBoardMode.prototype.Hide_Toolbar=function(){if("none"!==this.m_oToolbarElement.style.display){if(null!==this.m_nTransitionId){clearTimeout(this.m_nTransitionId);this.m_nTransitionId=null}this.m_oToolbarElement.style.opacity=0;this.m_oToolbarElement.style.top=(this.m_nTop+50)+"px";this.m_oToolbarElement.style.height="0px";var a=this;this.m_nTransitionId=setTimeout(function(){a.m_oToolbarElement.style.display="none";a.m_nTransitionId=null},500)}};function CDrawingButtonEditModeColor(a){CDrawingButtonEditModeText.superclass.constructor.call(this,a)}CommonExtend(CDrawingButtonEditModeColor,CDrawingButtonBase);CDrawingButtonEditModeColor.prototype.private_DrawOnCanvas=function(n,t,j,a,v,e,k,i,h){var q=6,m=12;var s=6,w=s+m;var d=6,l=d+m;var r=s+q,g=r+m;var c=d+q,u=c+m;var p=r+q,o=p+m;var b=c+q,f=b+m;n.lineWidth=2;n.strokeStyle="rgb(0, 0, 200)";n.beginPath();n.moveTo(w,c);n.lineTo(w,d);n.lineTo(s,d);n.lineTo(s,l);n.lineTo(r,l);n.stroke();n.strokeStyle="rgb(0, 100, 0)";n.beginPath();n.moveTo(g,b);n.lineTo(g,c);n.lineTo(r,c);n.lineTo(r,u);n.lineTo(p,u);n.stroke();n.strokeStyle="rgb(200, 0, 0)";n.beginPath();n.moveTo(o,f);n.lineTo(o,b);n.lineTo(p,b);n.lineTo(p,f);n.closePath();n.stroke()};CDrawingButtonEditModeColor.prototype.private_HandleMouseDown=function(){this.m_oGameTree.Get_DrawingBoard().Set_Mode(EBoardMode.AddMarkColor)};CDrawingButtonEditModeColor.prototype.private_GetHint=function(){return(window.g_oLocalization?window.g_oLocalization.gameRoom.button.hint.editModeColors:"Color marks")+" (F10)"};CDrawingButtonEditModeColor.prototype.private_RegisterButton=function(){this.m_oDrawing.Register_EditModeColorButton(this)};function CDrawingButtonToolbarCustomize(g,b){CDrawingButtonEditModeText.superclass.constructor.call(this,g);this.m_oImage=this.private_AddImageToLoad("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAICAYAAADJEc7MAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3wwVDQAZ4Th1ZQAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAkUlEQVQY033PsRHDIAwF0A+nitILUHCnhoapklW8QrZhBBo1NDRULEEak3OwsSpO0pOEijG+QgifWityzgoP4Zzr1lqklN5ERLsxBswMAH2FmbkfPSCiXbfWNhEZRTBzf0IigtbapgGglKJWeEalFAUANBqORPfe/84eg2b0Bxf4FgGAnv9zPnuFLhvnzaf3Jb5oPFaLEyr1tgAAAABJRU5ErkJggg==");this.m_oTransformCanvas=null;this.m_oMultiLevelToolbar=b;var k=g.Get_MainDiv();var i=(window.g_oLocalization?window.g_oLocalization.gameRoom.toolbarCustomization.mainNavigation:"Main navigation");var d=(window.g_oLocalization?window.g_oLocalization.gameRoom.toolbarCustomization.treeNavigation:"Tree navigation");var j=(window.g_oLocalization?window.g_oLocalization.gameRoom.toolbarCustomization.generalToolbar:"General toolbar");var h=(window.g_oLocalization?window.g_oLocalization.gameRoom.toolbarCustomization.autoplay:"Autoplay toolbar");var f=(window.g_oLocalization?window.g_oLocalization.gameRoom.toolbarCustomization.timelinePanel:"Timeline panel");var c=(window.g_oLocalization?window.g_oLocalization.gameRoom.toolbarCustomization.kifuMode:"Kifu mode");this.m_nWidth=160;this.m_nHeight=14+6*20;var a=document.createElement("div");a.id=k.id+"ToolbarCustomizeWrapper";a.style.position="absolute";a.style.top="100px";a.style.left="100px";a.style.width=this.m_nWidth+"px";a.style.height=this.m_nHeight+"px";a.style.background="rgb(255, 255, 255)";a.style.display="block";a.style.border="1px solid rgb(166, 166, 166)";a.style.boxShadow="0px 1px 15px rgba(0,0,0,0.8)";a.style.overflowY="hidden";k.appendChild(a);a.style.transitionProperty="height";a.style.transitionDuration="0.2s";a.style.transitionDelay="0s";a.style.display="none";this.m_oContextMenuElement=a;this.m_nTransitionId=null;this.m_nShowId=null;var e=document.createElement("ul");e.style.padding="5px 0";e.style.margin="2px 0 0";e.style.listStyle="none";e.style.fontSize="16px";e.style.backgroundClip="padding-box";e.style.lineHeight="20px";this.m_oMainNavigationCheckElement=this.private_CreateListItem(e,i,function(){g.Toggle_MultiLevelToolbarMainNavigation()},g_oGlobalSettings.Is_MultiLevelToolbarMainNavigation());this.m_oTreeNavigationCheckElement=this.private_CreateListItem(e,d,function(){g.Toggle_MultiLevelToolbarTreeNavigation()},g_oGlobalSettings.Is_MultiLevelToolbarTreeNavigation());this.m_oGeneralCheckElement=this.private_CreateListItem(e,j,function(){g.Toggle_MultiLevelToolbarGeneral()},g_oGlobalSettings.Is_MultiLevelToolbarGeneral());this.m_oAutoPlayCheckElement=this.private_CreateListItem(e,h,function(){g.Toggle_MultiLevelToolbarAutoPlay()},g_oGlobalSettings.Is_MultiLevelToolbarAutoPlay());this.m_oTimelineCheckElement=this.private_CreateListItem(e,f,function(){g.Toggle_MultiLevelToolbarTimeline()},g_oGlobalSettings.Is_MultiLevelToolbarTimeline());this.m_oKifuModeCheckElement=this.private_CreateListItem(e,c,function(){g.Toggle_MultiLevelToolbarKifuMode()},g_oGlobalSettings.Is_MultiLevelToolbarKifuMode());a.appendChild(e)}CommonExtend(CDrawingButtonToolbarCustomize,CDrawingButtonBase);CDrawingButtonToolbarCustomize.prototype.Init=function(b,c){CDrawingButtonToolbarCustomize.superclass.Init.apply(this,arguments);var a=this.HtmlElement.Control.HtmlElement;var d=document.createElement("canvas");d.setAttribute("id",b+"_transform");d.setAttribute("style","position:absolute;padding:0;margin:0;top:14px;left:11px;width:14px;height:8px;");d.width=14;d.height=8;d.setAttribute("oncontextmenu","return false;");d.draggable="false";d.ondragstart=function(e){e.preventDefault();return false};a.appendChild(d);this.m_oTransformCanvas=d};CDrawingButtonToolbarCustomize.prototype.Update_Size=function(){CDrawingButtonToolbarCustomize.superclass.Update_Size.apply(this,arguments);var a=this.m_oDrawing.Get_ElementOffset(this.HtmlElement.Control.HtmlElement);var d=a.X+36-this.m_nWidth;var c=a.Y+36+5;var f=this.m_oDrawing.Get_Width();var b=this.m_oDrawing.Get_Height();var e=5;if(d+this.m_nWidth>f-e){d=f-e-this.m_nWidth}if(d<e){d=e}if(c+this.m_nHeight>b-e){c=b-e-this.m_nHeight}if(c<e){c=e}this.m_nTop=c;this.m_oContextMenuElement.style.left=d+"px";this.m_oContextMenuElement.style.top=c+"px"};CDrawingButtonToolbarCustomize.prototype.private_DrawOnCanvas=function(a,d,h,g,e,b,j,i,c){if(this.m_oTransformCanvas){var f=this.m_oTransformCanvas.getContext("2d");f.drawImage(this.m_oImage,0,0)}};CDrawingButtonToolbarCustomize.prototype.private_HandleMouseDown=function(){if("none"===this.m_oContextMenuElement.style.display){if(null===this.m_nShowId){var a=this;this.m_nShowId=setTimeout(function(){if(null!==a.m_nTransitionId){clearTimeout(a.m_nTransitionId);a.m_nTransitionId=null}a.m_oContextMenuElement.style.display="block";a.m_oContextMenuElement.style.height="0px";a.m_nTransitionId=setTimeout(function(){a.m_oContextMenuElement.style.height=a.m_nHeight+"px";a.m_nTransitionId=null;a.m_nShowId=null;a.m_oTransformCanvas.style.transition="transform 0.2s ease";a.m_oTransformCanvas.style.transform="rotate(180deg)";a.Set_Selected(true)},20)},20)}}else{this.Hide_ContextMenu()}};CDrawingButtonToolbarCustomize.prototype.private_GetHint=function(){return""};CDrawingButtonToolbarCustomize.prototype.private_RegisterButton=function(){this.m_oDrawing.Register_ToolbarCustomizeButton(this)};CDrawingButtonToolbarCustomize.prototype.Hide_ContextMenu=function(b){if("none"!==this.m_oContextMenuElement.style.display){if(true===b){this.m_oContextMenuElement.style.height="0px";this.m_oContextMenuElement.style.display="none";this.m_oTransformCanvas.style.transition="transform 0.2s ease";this.m_oTransformCanvas.style.transform="rotate(0deg)";this.Set_Selected(false)}else{if(null!==this.m_nTransitionId){clearTimeout(this.m_nTransitionId);this.m_nTransitionId=null}this.m_oContextMenuElement.style.height="0px";var a=this;this.m_nTransitionId=setTimeout(function(){a.m_oContextMenuElement.style.display="none";a.m_nTransitionId=null;a.m_oTransformCanvas.style.transition="transform 0.2s ease";a.m_oTransformCanvas.style.transform="rotate(0deg)";a.Set_Selected(false)},200)}}};CDrawingButtonToolbarCustomize.prototype.private_CreateListItem=function(h,d,c,g){var f=document.createElement("li");f.style.fontFamily='"Times New Roman", Times, serif';f.style.width=(this.m_nWidth-10)+"px";f.style.height="20px";f.style.color="#444444";f.style.margin="0px 5px 0px 5px";f.style.cursor="pointer";var b=document.createElement("div");b.style.paddingLeft="3px";b.style.width="20px";b.style.height="20px";b.style["float"]="left";Common.Set_InnerTextToElement(b,g?"✔":"");f.appendChild(b);var a=document.createElement("div");a.style.paddingLeft="5px";a.style.height="20px";a.style.width=(this.m_nWidth-10-20-10)+"px";a.style["float"]="left";a.style.overflow="hidden";Common.Set_InnerTextToElement(a,d);f.appendChild(a);f.onmouseover=function(){f.style.background="#d8dadc";f.style.color="#373737"};f.onmouseout=function(){f.style.background="transparent";f.style.color="#444444"};var e=this;f.onclick=function(){if(c){c()}e.Hide_ContextMenu(true)};h.appendChild(f);return b};CDrawingButtonToolbarCustomize.prototype.Set_MainNavigation=function(a){if(this.m_oMultiLevelToolbar){this.m_oMultiLevelToolbar.Set_MainNavigation(a)}this.private_UpdateCheckElement(this.m_oMainNavigationCheckElement,a)};CDrawingButtonToolbarCustomize.prototype.Set_TreeNavigation=function(a){if(this.m_oMultiLevelToolbar){this.m_oMultiLevelToolbar.Set_TreeNavigation(a)}this.private_UpdateCheckElement(this.m_oTreeNavigationCheckElement,a)};CDrawingButtonToolbarCustomize.prototype.Set_General=function(a){if(this.m_oMultiLevelToolbar){this.m_oMultiLevelToolbar.Set_General(a)}this.private_UpdateCheckElement(this.m_oGeneralCheckElement,a)};CDrawingButtonToolbarCustomize.prototype.Set_AutoPlay=function(a){if(this.m_oMultiLevelToolbar){this.m_oMultiLevelToolbar.Set_AutoPlay(a)}this.private_UpdateCheckElement(this.m_oAutoPlayCheckElement,a)};CDrawingButtonToolbarCustomize.prototype.Set_Timeline=function(a){if(this.m_oMultiLevelToolbar){this.m_oMultiLevelToolbar.Set_Timeline(a)}this.private_UpdateCheckElement(this.m_oTimelineCheckElement,a)};CDrawingButtonToolbarCustomize.prototype.Set_KifuMode=function(a){if(this.m_oMultiLevelToolbar){this.m_oMultiLevelToolbar.Set_KifuMode(a)}this.private_UpdateCheckElement(this.m_oKifuModeCheckElement,a)};CDrawingButtonToolbarCustomize.prototype.private_UpdateCheckElement=function(a,b){if(a){if(true===b){Common.Set_InnerTextToElement(a,"✔")}else{Common.Set_InnerTextToElement(a,"")}}};function CDrawingButtonFileMenu(b){CDrawingButtonFileMenu.superclass.constructor.call(this,b);var a=b.Get_MainDiv();var c=b.Get_GameTree();var d=document.createElement("div");d.style.position="absolute";d.style.top="40px";d.style.width="200px";d.style.backgroundColor="white";d.style.borderWidth="1px";d.style.borderColor="#b3b3b3";d.style.borderStyle="solid";d.style.padding="0px";d.style.boxShadow="0px 0px 2px 0px rgba(0,0,0,0.3)";d.style.opacity="1";d.style.zIndex="10";d.style.overflowX="hidden";d.style.overflowY="hidden";d.style.maxHeight="calc(100vh - 90px)";d.style.transitionProperty="height";d.style.transitionDuration="0.2s";d.style.transitionDelay="0s";this.m_oMainDiv=a;this.m_oMenuElement=d;this.m_nHeight=d.clientHeight;this.m_nWidth=d.clientWidth;this.m_nTransitionId=null;this.m_nShowId=null;this.m_oGameTree=c;this.InitDefaultMenu(false);a.appendChild(d);d.style.display="none"}CommonExtend(CDrawingButtonFileMenu,CDrawingButtonBase);CDrawingButtonFileMenu.prototype.private_DrawOnCanvas=function(c,f,n,i,g,d,q,o,e){var m=9;var k=6;var p=3;var d=2;var b=n+p;var a=n+f-p;var l=i+m;var j=i+k+m;var h=i+2*k+m;c.fillStyle=(true===this.m_oActiveBColor.Compare(o)?"rgb(167, 167, 167)":"rgb(217, 217, 217)");c.fillRect(0,0,f+2*n,f+2*n);c.lineWidth=d;c.strokeStyle="rgb(100, 100, 100)";c.beginPath();c.moveTo(b,l);c.lineTo(a,l);c.stroke();c.beginPath();c.moveTo(b,j);c.lineTo(a,j);c.stroke();c.beginPath();c.moveTo(b,h);c.lineTo(a,h);c.stroke()};CDrawingButtonFileMenu.prototype.private_CreateMenuItem=function(f,b,a){var h=document.createElement("div");h.style.padding="0px";h.style.maring="0px";f.appendChild(h);var d=document.createElement("div");d.style.display="flex";d.style.alignItems="center";d.style.padding="0px";d.style.position="relative";d.style.cursor="pointer";d.style.transition="background-color 0.25s ease";d.style.backgroundColor="#fff";d.style.color="#424242";d.style.border="1px solid transparent";d.style.outline="none";h.appendChild(d);var e=document.createElement("div");e.style.padding="10px 20px";e.style.position="relative";e.style.cursor="pointer";e.style.borderBottom="1px solid #e6e7e8";e.style.transition="background-color 0.25s ease";e.style.outline="none";e.style.width="100%";d.appendChild(e);var g=document.createElement("span");g.style.color="#4d4d4d";g.style.fontFamily='"Segoe UI Light","Segoe UI Semilight","Segoe UI",Helvetica,Tahoma,Geneva,Verdana,sans-serif';g.style.fontWeight="lighter";g.style.fontSize="15px";g.style.userSelect="none";g.style.verticalAlign="middle";g.style.cursor="pointer";Common.Set_InnerTextToElement(g,b);e.appendChild(g);d.onmouseover=function(){d.style.backgroundColor="#e6e6e6";d.style.color="#424242"};d.onmouseout=function(){d.style.background="transparent";d.style.color="#424242";d.style.border="1px solid transparent"};d.onmousedown=function(){d.style.backgroundColor="#969696";d.style.border="1px solid #737373";d.style.color="#424242"};d.onmouseup=function(){d.style.backgroundColor="#e6e6e6";d.style.color="#424242";d.style.border="1px solid transparent"};var c=this;d.onclick=function(){if(a){a()}c.Hide_Menu(true)};return h};CDrawingButtonFileMenu.prototype.private_HandleMouseDown=function(){this.Show_Menu()};CDrawingButtonFileMenu.prototype.private_GetHint=function(){return window.g_oLocalization?window.g_oLocalization.gameRoom.menu.hint:"Menu"};CDrawingButtonFileMenu.prototype.Show_Menu=function(){if("none"===this.m_oMenuElement.style.display){if(null===this.m_nShowId){var a=this;this.m_nShowId=setTimeout(function(){if(null!==a.m_nTransitionId){clearTimeout(a.m_nTransitionId);a.m_nTransitionId=null}a.m_oMenuElement.style.display="block";if(a.m_nHeight===0){a.m_nHeight=a.m_oMenuElement.clientHeight}a.m_oMenuElement.style.height="0px";a.m_nTransitionId=setTimeout(function(){a.m_oMenuElement.style.height=a.m_nHeight+"px";a.m_nTransitionId=null;a.m_nShowId=null;a.Set_Selected(true)},20)},20)}}else{this.Hide_Menu()}};CDrawingButtonFileMenu.prototype.Hide_Menu=function(b){if("none"!==this.m_oMenuElement.style.display){if(true===b){this.m_oMenuElement.style.height="0px";this.m_oMenuElement.style.display="none";this.Set_Selected(false)}else{if(null!==this.m_nTransitionId){clearTimeout(this.m_nTransitionId);this.m_nTransitionId=null}this.m_oMenuElement.style.height="0px";var a=this;this.m_nTransitionId=setTimeout(function(){a.m_oMenuElement.style.display="none";a.m_nTransitionId=null;a.Set_Selected(false)},200)}}};CDrawingButtonFileMenu.prototype.Update_Size=function(){CDrawingButtonFileMenu.superclass.Update_Size.apply(this,arguments);var a=this.m_oDrawing.Get_ElementOffset(this.HtmlElement.Control.HtmlElement);var d=a.X;var c=a.Y+36+5;var f=this.m_oDrawing.Get_Width();var b=this.m_oDrawing.Get_Height();var e=5;if(d+this.m_nWidth>f-e){d=f-e-this.m_nWidth}if(d<e){d=e}if(c+this.m_nHeight>b-e){c=b-e-this.m_nHeight}if(c<e){c=e}this.m_nTop=c;this.m_oMenuElement.style.left=d+"px";this.m_oMenuElement.style.top=c+"px"};CDrawingButtonFileMenu.prototype.private_ClickTransformIn=function(){};CDrawingButtonFileMenu.prototype.private_ClickTransformOut=function(){};CDrawingButtonFileMenu.prototype.InitDefaultMenu=function(d){var f=window.g_oLocalization?window.g_oLocalization.gameRoom.menu.createNew:"Create New";var o=window.g_oLocalization?window.g_oLocalization.gameRoom.menu.loadFile:"Load from disk";var a=window.g_oLocalization?window.g_oLocalization.gameRoom.menu.loadFileFromClipboard:"Load from clipboard";var g=window.g_oLocalization?window.g_oLocalization.gameRoom.menu.downloadSGF:"Download as SGF";var k=window.g_oLocalization?window.g_oLocalization.gameRoom.menu.copyToClipboard:"Copy to clipboard";var i=window.g_oLocalization?window.g_oLocalization.gameRoom.menu.createSnapshot:"Create snapshot";var b=window.g_oLocalization?window.g_oLocalization.gameRoom.menu.exportToGif:"Export to GIF";var c=window.g_oLocalization?window.g_oLocalization.gameRoom.menu.convertToASCIIDiagram:"Convert to ASCII diagram";var e=window.g_oLocalization?window.g_oLocalization.gameRoom.menu.toggleCoordinates:"Toggle coordinates";var m=window.g_oLocalization?window.g_oLocalization.gameRoom.menu.gameInfo:"Game info";var j=window.g_oLocalization?window.g_oLocalization.gameRoom.menu.cropBoard:"Crop the board";var n=this.m_oMenuElement;var l=this.m_oGameTree;var p=this.m_oMainDiv;n.style.display="block";n.style.opacity=null;n.style.height=null;Common.ClearNode(n);var h=this;if(true!==d){this.private_CreateMenuItem(n,f,function(){CreateWindow(p.id,EWindowType.CreateNew,{GameTree:l,Drawing:h.m_oDrawing})});this.private_CreateMenuItem(n,o,function(){Common.OpenFileDialog(l)});this.private_CreateMenuItem(n,a,function(){CreateWindow(p.id,EWindowType.Clipboard,{GameTree:l,Drawing:h.m_oDrawing})})}this.private_CreateMenuItem(n,m,function(){CreateWindow(p.id,EWindowType.GameInfo,{GameTree:l,Drawing:h.m_oDrawing})});this.private_CreateMenuItem(n,g,function(){if(FileReader&&Blob){var s=l.Save_Sgf();var r=l.Get_MatchName();if(""===r){r="download"}r+=".sgf";var q=new Blob([s],{type:"text/plain;charset=utf-8"});Common.SaveAs(q,r,"application/x-go-sgf")}});this.private_CreateMenuItem(n,k,function(){l.CopyToClipboard()});this.private_CreateMenuItem(n,i,function(){l.Download_PngBoardScreenShot()});this.private_CreateMenuItem(n,b,function(){l.Download_GifForCurVariant()});this.private_CreateMenuItem(n,c,function(){CreateWindow(p.id,EWindowType.DiagramSL,{GameTree:l,Drawing:h.m_oDrawing})});this.private_CreateMenuItem(n,e,function(){l.Toggle_Rulers()});this.private_CreateMenuItem(n,j,function(){CreateWindow(p.id,EWindowType.ViewPort,{GameTree:l,Drawing:h.m_oDrawing})});this.m_nHeight=n.clientHeight;n.style.display="none"};function CDrawingButtonKifuWindow(a){CDrawingButtonKifuWindow.superclass.constructor.call(this,a)}CommonExtend(CDrawingButtonKifuWindow,CDrawingButtonBase);CDrawingButtonKifuWindow.prototype.private_DrawOnCanvas=function(c,g,n,l,h,d,p,o,f){var b=Math.ceil(n+0.5*g-g/10+0.5);var a=Math.ceil(l+0.5*g-g/10+0.5);var i=Math.ceil(0.35*g+0.5);c.fillStyle=(new CColor(255,255,255)).ToString();c.strokeStyle=(new CColor(0,0,0)).ToString();c.beginPath();c.arc(b,a,i,0,2*Math.PI,false);c.fill();c.stroke();var e="白";var m=g*0.4*1.4;var k="Times New Roman, Sans serif";var j=m+"px "+k;c.font=j;c.fillStyle="rgb(0, 0, 0)";a=a+m/3;b=b+(-c.measureText(e).width)/2;c.fillText(e,b,a);c.fillStyle=(new CColor(0,0,0)).ToString();b=Math.ceil(n+0.5*g+g/10+0.5);a=Math.ceil(l+0.5*g+g/10+0.5);c.beginPath();c.arc(b,a,i,0,2*Math.PI,false);c.fill();var e="黒";c.fillStyle="rgb(255, 255, 255)";a=a+m/3;b=b+(-c.measureText(e).width)/2;c.fillText(e,b,a)};CDrawingButtonKifuWindow.prototype.private_HandleMouseDown=function(){CreateWindow(this.HtmlElement.Control.HtmlElement.id,EWindowType.Kifu,{GameTree:this.m_oGameTree,Drawing:this.m_oDrawing})};CDrawingButtonKifuWindow.prototype.private_GetHint=function(){return(window.g_oLocalization?window.g_oLocalization.gameRoom.button.hint.showKifu:"Show kifu")};function CDrawingButtonKifuMode(a){CDrawingButtonKifuWindow.superclass.constructor.call(this,a)}CommonExtend(CDrawingButtonKifuMode,CDrawingButtonBase);CDrawingButtonKifuMode.prototype.private_DrawOnCanvas=function(m,p,k,a,q,d,l,j,i){k=0,a=0,p=36;var s=(k+10)|0+0.5;var r=(k+25)|0+0.5;var h=(a+10)|0+0.5;var f=(a+25)|0+0.5;m.lineWidth=2;m.strokeStyle="rgb(0, 0, 0)";m.beginPath();m.moveTo(k+1,h);m.lineTo(p/2+1,h);m.moveTo(k+1,f);m.lineTo(p+k-1,f);m.moveTo(s,a+1);m.lineTo(s,p+a-1);m.moveTo(r,p/2);m.lineTo(r,p+a-1);m.stroke();m.fillStyle="rgb(255, 255, 255)";m.beginPath();m.arc(s,h,11/2,0,2*Math.PI,false);m.stroke();m.fill();m.beginPath();m.arc(r,f,11/2,0,2*Math.PI,false);m.stroke();m.fill();m.fillStyle="rgb(0, 0, 0)";m.beginPath();m.arc(s,f,11/2,0,2*Math.PI,false);m.stroke();m.fill();var o="?";var e=22;var g="Times New Roman, Sans serif";var n=e+"px "+g;m.font=n;var b=h+e/3;var c=r-m.measureText(o).width/2;m.fillText(o,c,b)};CDrawingButtonKifuMode.prototype.private_HandleMouseDown=function(){if(true===this.m_oGameTree.Is_KifuMode()){this.m_oGameTree.Stop_KifuMode()}else{this.m_oGameTree.Start_KifuMode()}};CDrawingButtonKifuMode.prototype.private_GetHint=function(){return(window.g_oLocalization?window.g_oLocalization.gameRoom.button.hint.toggleKifuMode:"Toggle kifu mode")};CDrawingButtonKifuMode.prototype.private_RegisterButton=function(){this.m_oDrawing.Register_KifuModeButton(this)};function CDrawingButtonSimpleText(c,b,a){CDrawingButtonSimpleText.superclass.constructor.call(this,null);this.m_oNormaBColor=new CColor(234,234,234,255);this.m_oNormaFColor=new CColor(172,172,172,255);this.m_oHoverBColor=new CColor(227,240,252,255);this.m_oHoverFColor=new CColor(126,180,234,255);this.m_oActiveBColor=new CColor(207,230,252,255);this.m_oActiveFColor=new CColor(86,157,229,255);this.m_oDisabledBColor=new CColor(239,239,239,255);this.m_oDisabledFColor=new CColor(217,217,217,255);this.m_sText=c?c:"";this.m_sHint=a?a:"";this.m_fHandler=b?b:null}CommonExtend(CDrawingButtonSimpleText,CDrawingButtonBase);CDrawingButtonSimpleText.prototype.private_DrawOnCanvas=function(c,g,m,k,h,d,o,n,f){c.lineWidth=1;c.moveTo(0,0);c.lineTo(0,o);c.lineTo(d,o);c.lineTo(d,0);c.lineTo(0,0);c.stroke();var e=this.m_sText;var l=16;var j="'Segoe UI', Helvetica, Tahoma, Geneva, Verdana, sans-serif";var i=l+"px "+j;c.fillStyle=(new CColor(0,0,0,255)).ToString();c.font=i;var a=k+g/2+l/3;var b=m+(g-c.measureText(e).width)/2;c.fillText(e,b,a)};CDrawingButtonSimpleText.prototype.private_HandleMouseDown=function(){if(this.m_fHandler){return this.m_fHandler()}};CDrawingButtonSimpleText.prototype.private_GetHint=function(){return this.m_sHint};CDrawingButtonSimpleText.prototype.private_ClickTransformIn=function(){};CDrawingButtonSimpleText.prototype.private_ClickTransformOut=function(){};CDrawingButtonSimpleText.prototype.private_DrawSelectionBounds=function(b,a,c){};"use strict";function CDrawingToolbar(a){this.m_oDrawing=a;this.m_oGameTree=null;this.HtmlElement={Control:null};this.m_oBColor=new CColor(217,217,217,255);this.m_aControls=[];this.m_aDrawingControls=[]}CDrawingToolbar.prototype.Add_Control=function(d,a,b,c){this.m_aDrawingControls.push(new CDrawingToolbarItem(d,a,b,c))};CDrawingToolbar.prototype.Init=function(k,j){this.m_oGameTree=j;this.HtmlElement.Control=CreateControlContainer(k);var h=this.HtmlElement.Control.HtmlElement;var i=this.HtmlElement.Control;h.style.backgroundColor=this.m_oBColor.ToString();var a=0;var g=0;for(var c=0,b=this.m_aDrawingControls.length;c<b;++c){var e=this.m_aDrawingControls[c];var d=e.Get_Control();if(null!==d){var f=k+c;this.private_CreateDivElement(h,f);if(EToolbarFloat.Left===e.Get_Align()){this.private_FillHtmlElement(i,f,a,e.Get_W(),true);a+=e.Get_W()+e.Get_Space()}else{this.private_FillHtmlElement(i,f,g,e.Get_W(),false);g+=e.Get_W()+e.Get_Space()}d.Init(f,j);this.m_aControls.push(d)}}this.Update_Size()};CDrawingToolbar.prototype.Update_Size=function(){var a=this.HtmlElement.Control.HtmlElement.clientWidth;var c=this.HtmlElement.Control.HtmlElement.clientHeight;this.HtmlElement.Control.Resize(a,c);for(var d=0,b=this.m_aControls.length;d<b;d++){this.m_aControls[d].Update_Size()}};CDrawingToolbar.prototype.Get_MinWidth=function(){var e=0;for(var b=0,c=this.m_aDrawingControls.length;b<c;++b){var d=this.m_aDrawingControls[b];var a=d.Get_W();if(-1===a){a=16777215}e+=a+d.Get_Space()}return e};CDrawingToolbar.prototype.private_CreateDivElement=function(c,b){var a=document.createElement("div");a.setAttribute("id",b);a.setAttribute("style","position:absolute;padding:0;margin:0;");a.setAttribute("oncontextmenu","return false;");c.appendChild(a);return a};CDrawingToolbar.prototype.private_FillHtmlElement=function(b,f,a,c,d){var e=CreateControlContainer(f);if(d){e.Bounds.SetParams(a,0,1000,1000,true,false,false,false,c,-1);e.Anchor=(g_anchor_top|g_anchor_left|g_anchor_bottom)}else{e.Bounds.SetParams(0,0,a,1000,false,false,true,false,c,-1);e.Anchor=(g_anchor_top|g_anchor_right|g_anchor_bottom)}b.AddControl(e)};function CDrawingNavigatorCommentsTabs(a){this.m_oDrawing=a;this.m_oGameTree=null;this.HtmlElement={Control:null,Comments:{Control:null},Navgiator:{Control:null}};this.m_oBColor=new CColor(217,217,217,255);this.m_oNavigatorButton=null;this.m_oCommentsButton=null;this.m_oNavigatorDiv=null;this.m_oCommentsDiv=null;this.m_aControls=[]}CDrawingNavigatorCommentsTabs.prototype.Init=function(j,i,a,h){this.m_oGameTree=i;this.HtmlElement.Control=CreateControlContainer(j);var f=this.HtmlElement.Control.HtmlElement;var g=this.HtmlElement.Control;f.style.backgroundColor=this.m_oBColor.ToString();var e=new CDrawingButtonTabComments(this.m_oDrawing);var k=j+"C";this.private_CreateDivElement(f,k);this.private_FillHtmlElement(g,k,0);e.Init(k,i);this.m_oCommentsButton=e;var c=new CDrawingButtonTabNavigator(this.m_oDrawing);var d=j+"N";var b=0;this.private_CreateDivElement(f,d);this.private_FillHtmlElement(g,d,1);c.Init(d,i);this.m_oNavigatorButton=c;this.m_oNavigatorButton.m_oParent=this;this.m_oCommentsButton.m_oParent=this;this.m_oNavigatorDiv=document.getElementById(a);this.m_oCommentsDiv=document.getElementById(h);this.Select(this.m_oCommentsButton);this.Update_Size()};CDrawingNavigatorCommentsTabs.prototype.Update_Size=function(){var a=this.HtmlElement.Control.HtmlElement.clientWidth;var b=this.HtmlElement.Control.HtmlElement.clientHeight;this.HtmlElement.Control.Resize(a,b);this.m_oNavigatorButton.Update_Size();this.m_oCommentsButton.Update_Size()};CDrawingNavigatorCommentsTabs.prototype.private_CreateDivElement=function(c,b){var a=document.createElement("div");a.setAttribute("id",b);a.setAttribute("style","position:absolute;padding:0;margin:0;");a.setAttribute("oncontextmenu","return false;");c.appendChild(a);return a};CDrawingNavigatorCommentsTabs.prototype.private_FillHtmlElement=function(b,d,a){var c=CreateControlContainer(d);c.Bounds.SetParams(0,a*36+a,1000,0,false,true,false,false,-1,36);c.Anchor=(g_anchor_top|g_anchor_left|g_anchor_right);b.AddControl(c)};CDrawingNavigatorCommentsTabs.prototype.Select=function(a){if(a===this.m_oNavigatorButton){this.m_oNavigatorButton.Set_Selected(true);this.m_oCommentsButton.Set_Selected(false);this.m_oNavigatorDiv.style.visibility="visible";this.m_oCommentsDiv.style.visibility="hidden"}else{if(a===this.m_oCommentsButton){this.m_oNavigatorButton.Set_Selected(false);this.m_oCommentsButton.Set_Selected(true);this.m_oNavigatorDiv.style.visibility="hidden";this.m_oCommentsDiv.style.visibility="visible"}else{this.m_oNavigatorButton.Set_Selected(false);this.m_oCommentsButton.Set_Selected(false);this.m_oNavigatorDiv.style.visibility="hidden";this.m_oCommentsDiv.style.visibility="hidden"}}};var EToolbarFloat={Left:1,Right:2};function CDrawingToolbarItem(d,a,b,c){this.m_oControl=d;this.m_nW=a;this.m_nSpace=b;this.m_eAlign=c}CDrawingToolbarItem.prototype.Get_Control=function(){return this.m_oControl};CDrawingToolbarItem.prototype.Get_W=function(){return this.m_nW};CDrawingToolbarItem.prototype.Get_Space=function(){return this.m_nSpace};CDrawingToolbarItem.prototype.Get_Align=function(){return this.m_eAlign};function CDrawingMultiLevelToolbar(a){this.m_oDrawing=a;this.HtmlElement={Control:null,SettingsControl:null,SettingsElement:null,GeneralControl:null,GeneralElement:null,AutoPlayControl:null,AutoPlayElement:null,TimelineControl:null,TimelineElement:null,GeneralNavigationElement:null,GeneralNavigationControl:null,TreeNavigationControl:null,TreeNavigationElement:null,KifuModeElement:null,KifuModeControl:null};this.m_bGeneralNavigation=g_oGlobalSettings.Is_MultiLevelToolbarMainNavigation();this.m_bTreeNavigation=g_oGlobalSettings.Is_MultiLevelToolbarTreeNavigation();this.m_bGeneralToolbar=g_oGlobalSettings.Is_MultiLevelToolbarGeneral();this.m_bAutoPlayToolbar=g_oGlobalSettings.Is_MultiLevelToolbarAutoPlay();this.m_bTimelimeToolbar=g_oGlobalSettings.Is_MultiLevelToolbarTimeline();this.m_bKifuModeToolbar=g_oGlobalSettings.Is_MultiLevelToolbarKifuMode();this.m_nW=-1;this.m_nH=-1;this.m_nLineHeight=36;this.m_nLineSpace=1;this.m_nSettingsWidth=36*3+2;this.m_oSettingsToolbar=new CDrawingToolbar(a);this.m_oSettingsToolbar.Add_Control(new CDrawingButtonAbout(a),36,1,EToolbarFloat.Left);if(this.m_oDrawing&&this.m_oDrawing.Get_GameTree()&&true!==this.m_oDrawing.Get_GameTree().Get_LocalSettings().Is_Embedding()){this.m_oSettingsToolbar.Add_Control(new CDrawingButtonSettings(a),36,1,EToolbarFloat.Left)}else{this.m_nSettingsWidth=36*2+1}this.m_oSettingsToolbar.Add_Control(new CDrawingButtonToolbarCustomize(a,this),36,1,EToolbarFloat.Left);this.m_oGeneralNavigation=new CDrawingToolbar(a);this.m_oGeneralNavigation.Add_Control(new CDrawingButtonBackwardToStart(a),36,1,EToolbarFloat.Left);this.m_oGeneralNavigation.Add_Control(new CDrawingButtonBackward5(a),36,1,EToolbarFloat.Left);this.m_oGeneralNavigation.Add_Control(new CDrawingButtonBackward(a),36,1,EToolbarFloat.Left);this.m_oGeneralNavigation.Add_Control(new CDrawingButtonForward(a),36,1,EToolbarFloat.Left);this.m_oGeneralNavigation.Add_Control(new CDrawingButtonForward5(a),36,1,EToolbarFloat.Left);this.m_oGeneralNavigation.Add_Control(new CDrawingButtonForwardToEnd(a),36,1,EToolbarFloat.Left);this.m_oTreeNavigation=new CDrawingToolbar(a);this.m_oTreeNavigation.Add_Control(new CDrawingButtonNextVariant(a),36,1,EToolbarFloat.Left);this.m_oTreeNavigation.Add_Control(new CDrawingButtonPrevVariant(a),36,1,EToolbarFloat.Left);this.m_oGeneralToolbar=new CDrawingToolbar(a);this.m_oGeneralToolbar.Add_Control(new CDrawingButtonPass(a),73,1,EToolbarFloat.Left);this.m_oGeneralToolbar.Add_Control(new CDrawingButtonBoardMode(a),36,1,EToolbarFloat.Left);this.m_oGeneralToolbar.Add_Control(new CDrawingButtonGameInfo(a),36,1,EToolbarFloat.Left);this.m_oAutoPlayToolbar=new CDrawingToolbar(a);this.m_oAutoPlayToolbar.Add_Control(new CDrawingButtonAutoPlay(a),36,1,EToolbarFloat.Left);this.m_oAutoPlayToolbar.Add_Control(new CDrawingSlider(a,EDrawingSliderType.AutoPlaySpeed),-1,1,EToolbarFloat.Left);this.m_oTimelineToolbar=new CDrawingToolbar(a);this.m_oTimelineToolbar.Add_Control(new CDrawingSlider(a,EDrawingSliderType.Timeline),-1,1,EToolbarFloat.Left);this.m_oKifuToolbar=new CDrawingToolbar(a);this.m_oKifuToolbar.Add_Control(new CDrawingButtonKifuWindow(a),36,1,EToolbarFloat.Left);this.m_oKifuToolbar.Add_Control(new CDrawingButtonKifuMode(a),36,1,EToolbarFloat.Left);this.m_nLevelsCount=1;this.m_aElements=[];this.m_pOnChangeCallback=null}CDrawingMultiLevelToolbar.prototype.Init=function(g){this.HtmlElement.Control=CreateControlContainer(g);var c=this.HtmlElement.Control.HtmlElement;var e=this.HtmlElement.Control;var h=g+"SS";var d=g+"GN";var i=g+"TN";var b=g+"GL";var j=g+"AP";var a=g+"TL";var f=g+"KF";this.HtmlElement.SettingsElement=Common.Create_DivElement(c,h);this.HtmlElement.GeneralNavigationElement=Common.Create_DivElement(c,d);this.HtmlElement.TreeNavigationElement=Common.Create_DivElement(c,i);this.HtmlElement.GeneralElement=Common.Create_DivElement(c,b);this.HtmlElement.AutoPlayElement=Common.Create_DivElement(c,j);this.HtmlElement.TimelineElement=Common.Create_DivElement(c,a);this.HtmlElement.KifuModeElement=Common.Create_DivElement(c,f);this.HtmlElement.SettingsControl=CreateControlContainer(h);e.AddControl(this.HtmlElement.SettingsControl);this.m_oSettingsToolbar.Init(h,this.m_oDrawing.Get_GameTree());this.HtmlElement.GeneralNavigationControl=CreateControlContainer(d);e.AddControl(this.HtmlElement.GeneralNavigationControl);this.m_oGeneralNavigation.Init(d,this.m_oDrawing.Get_GameTree());this.HtmlElement.TreeNavigationControl=CreateControlContainer(i);e.AddControl(this.HtmlElement.TreeNavigationControl);this.m_oTreeNavigation.Init(i,this.m_oDrawing.Get_GameTree());this.HtmlElement.GeneralControl=CreateControlContainer(b);e.AddControl(this.HtmlElement.GeneralControl);this.m_oGeneralToolbar.Init(b,this.m_oDrawing.Get_GameTree());this.HtmlElement.AutoPlayControl=CreateControlContainer(j);e.AddControl(this.HtmlElement.AutoPlayControl);this.m_oAutoPlayToolbar.Init(j,this.m_oDrawing.Get_GameTree());this.HtmlElement.TimelineControl=CreateControlContainer(a);e.AddControl(this.HtmlElement.TimelineControl);this.m_oTimelineToolbar.Init(a,this.m_oDrawing.Get_GameTree());this.HtmlElement.KifuModeControl=CreateControlContainer(f);e.AddControl(this.HtmlElement.KifuModeControl);this.m_oKifuToolbar.Init(f,this.m_oDrawing.Get_GameTree());this.private_UpdateElements();this.private_UpdateControls()};CDrawingMultiLevelToolbar.prototype.Get_Height=function(){var a=Math.max(this.m_nLevelsCount,1);return a*this.m_nLineHeight+(a-1)*this.m_nLineSpace};CDrawingMultiLevelToolbar.prototype.Update_Size=function(d){var a=this.HtmlElement.Control.HtmlElement.clientWidth;var b=this.HtmlElement.Control.HtmlElement.clientHeight;if(a!==this.m_nW||b!==this.m_nH||true===d){this.m_nW=a;this.m_nH=b;this.private_Update();this.HtmlElement.Control.Resize(a,b);this.m_oSettingsToolbar.Update_Size();for(var f=0,c=this.m_aElements.length;f<c;++f){var e=this.m_aElements[f];e.Update_Size()}}};CDrawingMultiLevelToolbar.prototype.Set_OnChangeCallback=function(a){this.m_pOnChangeCallback=a};CDrawingMultiLevelToolbar.prototype.Set_MainNavigation=function(a){this.m_bGeneralNavigation=a;this.private_Update();this.Update_Size(true)};CDrawingMultiLevelToolbar.prototype.Set_TreeNavigation=function(a){this.m_bTreeNavigation=a;this.private_Update();this.Update_Size(true)};CDrawingMultiLevelToolbar.prototype.Set_General=function(a){this.m_bGeneralToolbar=a;this.private_Update();this.Update_Size(true)};CDrawingMultiLevelToolbar.prototype.Set_AutoPlay=function(a){this.m_bAutoPlayToolbar=a;this.private_Update();this.Update_Size(true)};CDrawingMultiLevelToolbar.prototype.Set_Timeline=function(a){this.m_bTimelimeToolbar=a;this.private_Update();this.Update_Size(true)};CDrawingMultiLevelToolbar.prototype.Set_KifuMode=function(a){this.m_bKifuModeToolbar=a;this.private_Update();this.Update_Size(true)};CDrawingMultiLevelToolbar.prototype.private_Update=function(){this.private_UpdateElements();this.private_UpdateControls();if(this.m_pOnChangeCallback){this.m_pOnChangeCallback()}};CDrawingMultiLevelToolbar.prototype.private_UpdateElements=function(){this.m_aElements=[];this.private_UpdateElement(this.m_bGeneralNavigation,this.m_oGeneralNavigation,this.HtmlElement.GeneralNavigationElement);this.private_UpdateElement(this.m_bTreeNavigation,this.m_oTreeNavigation,this.HtmlElement.TreeNavigationElement);this.private_UpdateElement(this.m_bGeneralToolbar,this.m_oGeneralToolbar,this.HtmlElement.GeneralElement);this.private_UpdateElement(this.m_bAutoPlayToolbar,this.m_oAutoPlayToolbar,this.HtmlElement.AutoPlayElement);this.private_UpdateElement(this.m_bTimelimeToolbar,this.m_oTimelineToolbar,this.HtmlElement.TimelineElement);this.private_UpdateElement(this.m_bKifuModeToolbar,this.m_oKifuToolbar,this.HtmlElement.KifuModeElement)};CDrawingMultiLevelToolbar.prototype.private_UpdateElement=function(c,a,b){if(true===c){this.m_aElements.push(a);b.style.display="block"}else{b.style.display="none"}};CDrawingMultiLevelToolbar.prototype.private_UpdateControls=function(){var e=this.HtmlElement.Control.HtmlElement.clientWidth;this.m_nLevelsCount=1;var h=this.HtmlElement.SettingsControl;h.Bounds.SetParams(0,0,0,1000,false,true,true,false,this.m_nSettingsWidth,this.m_nLineHeight);h.Anchor=(g_anchor_top|g_anchor_right);var j=e-this.m_oSettingsToolbar.Get_MinWidth();var i=0;var g=0;for(var d=0,f=this.m_aElements.length;d<f;++d){var a=this.m_aElements[d];var b=a.Get_MinWidth();var c=this.private_GetHtmlControlByControl(a);if(!c){continue}if(i<=0.1||i+b<j){c.Bounds.SetParams(i,g,1000,1000,true,true,true,false,Math.min(b,j),this.m_nLineHeight);c.Anchor=(g_anchor_top|g_anchor_left);i+=b}else{j=e;this.m_nLevelsCount++;i=0;g+=this.m_nLineHeight+this.m_nLineSpace;c.Bounds.SetParams(i,g,1000,1000,true,true,true,false,Math.min(b,j-i),this.m_nLineHeight);c.Anchor=(g_anchor_top|g_anchor_left);i+=b}}};CDrawingMultiLevelToolbar.prototype.private_GetHtmlControlByControl=function(a){var b=null;if(a===this.m_oGeneralNavigation){b=this.HtmlElement.GeneralNavigationControl}else{if(a===this.m_oTreeNavigation){b=this.HtmlElement.TreeNavigationControl}else{if(a===this.m_oGeneralToolbar){b=this.HtmlElement.GeneralControl}else{if(a===this.m_oAutoPlayToolbar){b=this.HtmlElement.AutoPlayControl}else{if(a===this.m_oTimelineToolbar){b=this.HtmlElement.TimelineControl}else{if(a===this.m_oKifuToolbar){b=this.HtmlElement.KifuModeControl}}}}}}return b};"use strict";var EColorScheme={Custom:0,TrueColor:1,BookStyle:2,SimpleColor:3,Dark:4};var ESettingsNavigatorLabels={Empty:0,MoveNumbers:1,MoveNumbersCurrentVariant:2,MoveCoordinates:3};var ESettingsLoadShowVariants={None:0,Curr:1,Next:2,FromFile:3};var EDrawingTemplate={None:0,SimpleBoard:1,Viewer:2,VerEditor:3,HorEditor:4,Problems:5,GoUniverseViewerHor:21,GoUniverseViewerVer:22,GoUniverseMatch:23};function CSettingsBase(){this.m_oBoardPr={bTrueColorBoard:true,bTrueColorStones:true,oBoardColor:new CColor(231,188,95,255),bShellWhiteStones:true,bShadows:true,oWhiteColor:new CColor(255,255,255,255),oBlackColor:new CColor(0,0,0,255),oLinesColor:new CColor(0,0,0,255),bDarkBoard:false};this.m_oNavigatorPr={bTrueColorBoard:true,bTrueColorStones:true,oBoardColor:new CColor(231,188,95,255),bShadows:true,oWhiteColor:new CColor(255,255,255,255),oBlackColor:new CColor(0,0,0,255),oLinesColor:new CColor(0,0,0,255),bDarkBoard:false}}CSettingsBase.prototype.private_SetColorScheme=function(a){var k=true;var c=true;var e=null;var g=true;var i=true;var l=new CColor(255,255,255,255);var d=new CColor(0,0,0,255);var b=new CColor(0,0,0,255);var f=false;switch(a){default:case EColorScheme.TrueColor:k=true;c=true;g=true;i=true;e=new CColor(231,188,95,255);b=new CColor(0,0,0,255);break;case EColorScheme.BookStyle:k=false;c=false;g=false;i=false;e=new CColor(255,255,255,255);b=new CColor(0,0,0,255);break;case EColorScheme.SimpleColor:k=false;c=false;g=false;i=false;e=new CColor(231,188,95,255);b=new CColor(0,0,0,255);break;case EColorScheme.Dark:k=false;c=false;g=false;i=false;f=true;e=new CColor(30,30,30,255);l=new CColor(220,220,220,220);b=new CColor(255,255,255,255);break}var j=false,h=false;if(this.m_oBoardPr.bTrueColorBoard!==k||this.m_oBoardPr.bTrueColorStones!==c||this.m_oBoardPr.oBoardColor.Compare(e)!==true||this.m_oBoardPr.bShellWhiteStones!==g||this.m_oBoardPr.bShadows!==i||this.m_oBoardPr.oWhiteColor.Compare(l)!==true||this.m_oBoardPr.oBlackColor.Compare(d)!==true||this.m_oBoardPr.oLinesColor.Compare(b)!==true||this.m_oBoardPr.bDarkBoard!==f){this.m_oBoardPr.bTrueColorBoard=k;this.m_oBoardPr.bTrueColorStones=c;this.m_oBoardPr.oBoardColor=e;this.m_oBoardPr.bShellWhiteStones=g;this.m_oBoardPr.bShadows=i;this.m_oBoardPr.oWhiteColor=l;this.m_oBoardPr.oBlackColor=d;this.m_oBoardPr.oLinesColor=b;this.m_oBoardPr.bDarkBoard=f;j=true}if(this.m_oNavigatorPr.bTrueColorBoard!==k||this.m_oNavigatorPr.bTrueColorStones!==c||this.m_oNavigatorPr.oBoardColor.Compare(e)!==true||this.m_oNavigatorPr.bShadows!==i||this.m_oNavigatorPr.oWhiteColor.Compare(l)!==true||this.m_oNavigatorPr.oBlackColor.Compare(d)!==true||this.m_oNavigatorPr.oLinesColor.Compare(b)!==true||this.m_oNavigatorPr.bDarkBoard!==f){this.m_oNavigatorPr.bTrueColorBoard=k;this.m_oNavigatorPr.bTrueColorStones=c;this.m_oNavigatorPr.oBoardColor=e;this.m_oNavigatorPr.bShadows=i;this.m_oNavigatorPr.oWhiteColor=l;this.m_oNavigatorPr.oBlackColor=d;this.m_oNavigatorPr.oLinesColor=b;this.m_oNavigatorPr.bDarkBoard=f;h=true}return{Board:j,Navigator:h}};function CSettings(){CSettings.superclass.constructor.call(this);this.m_bSound=true;this.m_bLoadUnfinishedFilesOnLastNode=false;this.m_bRulers=true;this.m_bCycleThroughVariants=false;this.m_eNavigatorLabels=ESettingsNavigatorLabels.MoveNumbers;this.m_eLoadShowVariants=ESettingsLoadShowVariants.FromFile;this.m_bShowTarget=true;this.m_bMultiLevelToolbarMainNavigation=true;this.m_bMultiLevelToolbarTreeNavigation=true;this.m_bMultiLevelToolbarGeneral=true;this.m_bMultiLevelToolbarAutoPlay=true;this.m_bMultiLevelToolbarTimeline=true;this.m_bMultiLevelToolbarKifuMode=true}CommonExtend(CSettings,CSettingsBase);CSettings.prototype.Load_FromLocalStorage=function(){this.m_bShowTarget=("0"===Common.Get_LocalStorageItem("ShowTarget")?false:true);this.m_bCycleThroughVariants=("1"===Common.Get_LocalStorageItem("CycleThroughVariants")?true:false);this.m_bSound=("0"===Common.Get_LocalStorageItem("Sound")?false:true);var e=Common.Get_LocalStorageItem("NavigatorLabels");this.m_eNavigatorLabels=(!e||""===e?ESettingsNavigatorLabels.MoveNumbers:parseInt(e));var b=EColorScheme.TrueColor;var c=Common.Get_LocalStorageItem("ColorScheme");if("BookStyle"===c){b=EColorScheme.BookStyle}else{if("SimpleColor"===c){b=EColorScheme.SimpleColor}else{if("Dark"===c){b=EColorScheme.Dark}}}this.Set_ColorScheme(b);this.m_bLoadUnfinishedFilesOnLastNode=("1"===Common.Get_LocalStorageItem("LoadUnfinishedFilesOnLastNode")?true:false);var d=Common.Get_LocalStorageItem("ShowVariants");this.m_eLoadShowVariants=(!d||""===d?ESettingsLoadShowVariants.FromFile:parseInt(d));var a=Common.Get_LocalStorageItem("Rulers");this.m_bRulers=(a==="0"?false:true);this.m_bMultiLevelToolbarMainNavigation=Common.Get_LocalStorageItem("MultiLevelToolbarMainNavigation")=="0"?false:true;this.m_bMultiLevelToolbarTreeNavigation=Common.Get_LocalStorageItem("MultiLevelToolbarTreeNavigation")=="0"?false:true;this.m_bMultiLevelToolbarGeneral=Common.Get_LocalStorageItem("MultiLevelToolbarGeneral")=="0"?false:true;this.m_bMultiLevelToolbarAutoPlay=Common.Get_LocalStorageItem("MultiLevelToolbarAutoPlay")=="1"?true:false;this.m_bMultiLevelToolbarTimeline=Common.Get_LocalStorageItem("MultiLevelToolbarTimeline")=="1"?true:false;this.m_bMultiLevelToolbarKifuMode=Common.Get_LocalStorageItem("MultiLevelToolbarKifuMode")=="1"?true:false};CSettings.prototype.Set_Sound=function(a){this.m_bSound=a;Common.Set_LocalStorageItem("Sound",a===true?"1":"0")};CSettings.prototype.Is_SoundOn=function(){return this.m_bSound};CSettings.prototype.Set_Rulers=function(a){this.m_bRulers=a;Common.Set_LocalStorageItem("Rulers",a===true?"1":"0")};CSettings.prototype.Is_Rulers=function(){return this.m_bRulers};CSettings.prototype.Set_LoadUnfinishedFilesOnLastNode=function(a){this.m_bLoadUnfinishedFilesOnLastNode=a;Common.Set_LocalStorageItem("LoadUnfinishedFilesOnLastNode",a===true?"1":"0")};CSettings.prototype.Is_LoadUnfinishedFilesOnLastNode=function(){return this.m_bLoadUnfinishedFilesOnLastNode};CSettings.prototype.Set_CycleThroughVariants=function(a){this.m_bCycleThroughVariants=a;Common.Set_LocalStorageItem("CycleThroughVariants",a===true?"1":"0")};CSettings.prototype.Is_CycleThroughVariants=function(){return this.m_bCycleThroughVariants};CSettings.prototype.Set_ShowTarget=function(a){this.m_bShowTarget=a;Common.Set_LocalStorageItem("ShowTarget",a===true?"1":"0")};CSettings.prototype.Is_ShowTarget=function(){return this.m_bShowTarget};CSettings.prototype.Set_ColorScheme=function(a){switch(a){case EColorScheme.TrueColor:Common.Set_LocalStorageItem("ColorScheme","TrueColor");break;case EColorScheme.BookStyle:Common.Set_LocalStorageItem("ColorScheme","BookStyle");break;case EColorScheme.SimpleColor:Common.Set_LocalStorageItem("ColorScheme","SimpleColor");break;case EColorScheme.Dark:Common.Set_LocalStorageItem("ColorScheme","Dark");break}return this.private_SetColorScheme(a)};CSettings.prototype.Get_NavigatorLabel=function(){return this.m_eNavigatorLabels};CSettings.prototype.Set_NavigatorLabel=function(a){this.m_eNavigatorLabels=a;Common.Set_LocalStorageItem("NavigatorLabels",a)};CSettings.prototype.Get_LoadShowVariants=function(){return this.m_eLoadShowVariants};CSettings.prototype.Set_LoadShowVariants=function(a){this.m_eLoadShowVariants=a;Common.Set_LocalStorageItem("ShowVariants",a)};CSettings.prototype.Toggle_MultiLevelToolbarMainNavigation=function(){this.m_bMultiLevelToolbarMainNavigation=!this.m_bMultiLevelToolbarMainNavigation;Common.Set_LocalStorageItem("MultiLevelToolbarMainNavigation",true===this.m_bMultiLevelToolbarMainNavigation?"1":"0");return this.m_bMultiLevelToolbarMainNavigation};CSettings.prototype.Toggle_MultiLevelToolbarTreeNavigation=function(){this.m_bMultiLevelToolbarTreeNavigation=!this.m_bMultiLevelToolbarTreeNavigation;Common.Set_LocalStorageItem("MultiLevelToolbarTreeNavigation",true===this.m_bMultiLevelToolbarTreeNavigation?"1":"0");return this.m_bMultiLevelToolbarTreeNavigation};CSettings.prototype.Toggle_MultiLevelToolbarGeneral=function(){this.m_bMultiLevelToolbarGeneral=!this.m_bMultiLevelToolbarGeneral;Common.Set_LocalStorageItem("MultiLevelToolbarGeneral",true===this.m_bMultiLevelToolbarGeneral?"1":"0");return this.m_bMultiLevelToolbarGeneral};CSettings.prototype.Toggle_MultiLevelToolbarAutoPlay=function(){this.m_bMultiLevelToolbarAutoPlay=!this.m_bMultiLevelToolbarAutoPlay;Common.Set_LocalStorageItem("MultiLevelToolbarAutoPlay",true===this.m_bMultiLevelToolbarAutoPlay?"1":"0");return this.m_bMultiLevelToolbarAutoPlay};CSettings.prototype.Toggle_MultiLevelToolbarTimeline=function(){this.m_bMultiLevelToolbarTimeline=!this.m_bMultiLevelToolbarTimeline;Common.Set_LocalStorageItem("MultiLevelToolbarTimeline",true===this.m_bMultiLevelToolbarTimeline?"1":"0");return this.m_bMultiLevelToolbarTimeline};CSettings.prototype.Toggle_MultiLevelToolbarKifuMode=function(){this.m_bMultiLevelToolbarKifuMode=!this.m_bMultiLevelToolbarKifuMode;Common.Set_LocalStorageItem("MultiLevelToolbarKifuMode",true===this.m_bMultiLevelToolbarKifuMode?"1":"0");return this.m_bMultiLevelToolbarKifuMode};CSettings.prototype.Is_MultiLevelToolbarMainNavigation=function(){return this.m_bMultiLevelToolbarMainNavigation};CSettings.prototype.Is_MultiLevelToolbarTreeNavigation=function(){return this.m_bMultiLevelToolbarTreeNavigation};CSettings.prototype.Is_MultiLevelToolbarGeneral=function(){return this.m_bMultiLevelToolbarGeneral};CSettings.prototype.Is_MultiLevelToolbarAutoPlay=function(){return this.m_bMultiLevelToolbarAutoPlay};CSettings.prototype.Is_MultiLevelToolbarTimeline=function(){return this.m_bMultiLevelToolbarTimeline};CSettings.prototype.Is_MultiLevelToolbarKifuMode=function(){return this.m_bMultiLevelToolbarKifuMode};var g_oGlobalSettings=new CSettings();function CLocalSetting(a){CLocalSetting.superclass.constructor.call(this);this.m_oBoardPr={bTrueColorBoard:null,bTrueColorStones:null,oBoardColor:null,bShellWhiteStones:null,bShadows:null,oWhiteColor:null,oBlackColor:null,oLinesColor:null,bDarkBoard:null};this.m_oNavigatorPr={bTrueColorBoard:null,bTrueColorStones:null,oBoardColor:null,bShadows:null,oWhiteColor:null,oBlackColor:null,oLinesColor:null,bDarkBoard:null};this.m_oGameTree=a;this.m_bShowTarget=null;this.m_bEmbedding=false}CommonExtend(CLocalSetting,CSettingsBase);CLocalSetting.prototype.Is_Embedding=function(){return this.m_bEmbedding};CLocalSetting.prototype.Set_Embedding=function(a){this.m_bEmbedding=a};CLocalSetting.prototype.Set_ColorScheme=function(a){if(null!==a){return this.private_SetColorScheme(a)}else{return{Board:true,Navigator:true}}};CLocalSetting.prototype.Is_BoardTrueColorBoard=function(){if(null===this.m_oBoardPr.bTrueColorBoard){return g_oGlobalSettings.m_oBoardPr.bTrueColorBoard}else{return this.m_oBoardPr.bTrueColorBoard}};CLocalSetting.prototype.Is_BoardTrueColorStones=function(){if(null===this.m_oBoardPr.bTrueColorStones){return g_oGlobalSettings.m_oBoardPr.bTrueColorStones}else{return this.m_oBoardPr.bTrueColorStones}};CLocalSetting.prototype.Is_BoardShellWhiteStones=function(){if(null===this.m_oBoardPr.bShellWhiteStones){return g_oGlobalSettings.m_oBoardPr.bShellWhiteStones}else{return this.m_oBoardPr.bShellWhiteStones}};CLocalSetting.prototype.Set_BoardShellWhiteStones=function(a){this.m_oBoardPr.bShellWhiteStones=a};CLocalSetting.prototype.Is_BoardShadows=function(){if(null===this.m_oBoardPr.bShadows){return g_oGlobalSettings.m_oBoardPr.bShadows}else{return this.m_oBoardPr.bShadows}};CLocalSetting.prototype.Get_BoardWhiteColor=function(){if(null===this.m_oBoardPr.oWhiteColor){return g_oGlobalSettings.m_oBoardPr.oWhiteColor}else{return this.m_oBoardPr.oWhiteColor}};CLocalSetting.prototype.Get_BoardBlackColor=function(){if(null===this.m_oBoardPr.oBlackColor){return g_oGlobalSettings.m_oBoardPr.oBlackColor}else{return this.m_oBoardPr.oBlackColor}};CLocalSetting.prototype.Get_BoardBoardColor=function(){if(null===this.m_oBoardPr.oBoardColor){return g_oGlobalSettings.m_oBoardPr.oBoardColor}else{return this.m_oBoardPr.oBoardColor}};CLocalSetting.prototype.Get_BoardLinesColor=function(){if(null===this.m_oBoardPr.oLinesColor){return g_oGlobalSettings.m_oBoardPr.oLinesColor}else{return this.m_oBoardPr.oLinesColor}};CLocalSetting.prototype.Is_BoardDarkBoard=function(){if(null===this.m_oBoardPr.bDarkBoard){return g_oGlobalSettings.m_oBoardPr.bDarkBoard}else{return this.m_oBoardPr.bDarkBoard}};CLocalSetting.prototype.Is_NavigatorTrueColorBoard=function(){if(null===this.m_oNavigatorPr.bTrueColorBoard){return g_oGlobalSettings.m_oNavigatorPr.bTrueColorBoard}else{return this.m_oNavigatorPr.bTrueColorBoard}};CLocalSetting.prototype.Is_NavigatorTrueColorStones=function(){if(null===this.m_oNavigatorPr.bTrueColorStones){return g_oGlobalSettings.m_oNavigatorPr.bTrueColorStones}else{return this.m_oNavigatorPr.bTrueColorStones}};CLocalSetting.prototype.Is_NavigatorShadows=function(){if(null===this.m_oNavigatorPr.bShadows){return g_oGlobalSettings.m_oNavigatorPr.bShadows}else{return this.m_oNavigatorPr.bShadows}};CLocalSetting.prototype.Get_NavigatorWhiteColor=function(){if(null===this.m_oNavigatorPr.oWhiteColor){return g_oGlobalSettings.m_oNavigatorPr.oWhiteColor}else{return this.m_oNavigatorPr.oWhiteColor}};CLocalSetting.prototype.Get_NavigatorBlackColor=function(){if(null===this.m_oNavigatorPr.oBlackColor){return g_oGlobalSettings.m_oNavigatorPr.oBlackColor}else{return this.m_oNavigatorPr.oBlackColor}};CLocalSetting.prototype.Get_NavigatorBoardColor=function(){if(null===this.m_oNavigatorPr.oBoardColor){return g_oGlobalSettings.m_oNavigatorPr.oBoardColor}else{return this.m_oNavigatorPr.oBoardColor}};CLocalSetting.prototype.Get_NavigatorLinesColor=function(){if(null===this.m_oNavigatorPr.oLinesColor){return g_oGlobalSettings.m_oNavigatorPr.oLinesColor}else{return this.m_oNavigatorPr.oLinesColor}};CLocalSetting.prototype.Is_NavigatorDarkBoard=function(){if(null===this.m_oNavigatorPr.bDarkBoard){return g_oGlobalSettings.m_oNavigatorPr.bDarkBoard}else{return this.m_oNavigatorPr.bDarkBoard}};CLocalSetting.prototype.Is_ShowTarget=function(){if(null===this.m_bShowTarget){return g_oGlobalSettings.Is_ShowTarget()}else{return this.m_bShowTarget}};CLocalSetting.prototype.Set_ShowTarget=function(a){this.m_bShowTarget=a};function CDrawing(b){this.m_oGameTree=b;if(b){b.Set_Drawing(this)}this.m_oMainDiv=null;this.m_oMainControl=null;this.m_oDisableElement=null;this.m_oControl=null;this.m_aElements=[];this.m_oButtons={BackwardToStart:[],Backward_5:[],Backward:[],Forward:[],Forward_5:[],ForwardToEnd:[],NextVariant:[],PrevVariant:[],Pass:null,BoardModeMove:[],BoardModeEditor:[],BoardModeTr:[],BoardModeSq:[],BoardModeCr:[],BoardModeX:[],BoardModeText:[],BoardModeNum:[],BoardModeColor:[],ToolbarCustomize:null,Menu:null,KifuMode:null,EditorControl:null};this.m_oWindows={Kifu:null};this.m_oAddLabelElement=null;this.m_oBoard=null;this.m_oNavigator=null;this.m_oTimeLine=null;this.m_oAutoPlayButton=null;this.m_oAutoPlaySlider=null;this.m_oSelectBoardModeButton=null;this.m_oBlackInfo=null;this.m_oWhiteInfo=null;this.m_oViewerTitle=null;this.m_aComments=[];var a=this;this.m_bNeedUpdateSize=true;this.m_eTemplateType=EDrawingTemplate.None;this.m_bMixedTemplate=false;this.m_nMixedTemplateIndex=-1;this.m_nMixedRightSide=400;this.m_nMixedBotSize=200;this.m_nMinWidth=-1;this.m_nViewerTitleH=0;this.m_nViewerToolbarH=0;this.m_nVerEditorTitleH=0;this.m_nVerEditorToolbarH=0;this.m_nVerEditorComNavH=0;this.m_arrStateHandlers=[];this.m_nAnimationFrameTimer=null;this.private_OnMainDivClick=function(){if(a.m_oSelectBoardModeButton){a.m_oSelectBoardModeButton.Hide_Toolbar()}if(a.m_oButtons.ToolbarCustomize){a.m_oButtons.ToolbarCustomize.Hide_ContextMenu(false)}if(a.m_oButtons.Menu){a.m_oButtons.Menu.Hide_Menu(false)}if(a.m_oButtons.EditorControl){a.m_oButtons.EditorControl.Hide_Menu(false)}};this.private_OnTimerDraw=function(){if(null!==a.m_nAnimationFrameTimer){Common_CancelAnimationFrame(a.m_nAnimationFrameTimer);a.m_nAnimationFrameTimer=null}a.m_nAnimationFrameTimer=Common_RequestAnimationFrame(a.private_OnTimerDraw);if(a.m_oNavigator&&a.m_oNavigator.Need_Redraw()){a.m_oNavigator.Draw()}if(a.m_bNeedUpdateSize){a.private_UpdateSize(false)}};this.private_OnTimerDraw()}CDrawing.prototype.OnDestroy=function(){if(null!==this.m_nAnimationFrameTimer){Common_CancelAnimationFrame(this.m_nAnimationFrameTimer);this.m_nAnimationFrameTimer=null}if(this.m_oMainDiv){delete g_aWindows[this.m_oMainDiv.id]}};CDrawing.prototype.Disable=function(){if(this.m_oMainDiv){var a=document.createElement("div");a.style.width="100%";a.style.height="100%";a.style.position="absolute";a.style.left="0px";a.style.top="0px";a.style.backgroundColor="rgb(0, 0, 0)";a.style.opacity=0.4;this.m_oMainDiv.appendChild(a);this.m_oDisableElement=a;var b=g_aWindows[this.m_oMainDiv.id][EWindowType.Error];if(b){b=b.HtmlElement.Control.HtmlElement}if(Common.Is_NodeDescendant(this.m_oMainDiv,b,0)){this.m_oMainDiv.removeChild(b);this.m_oMainDiv.appendChild(b)}}};CDrawing.prototype.Enable=function(){if(this.m_oDisableElement){this.m_oMainDiv.removeChild(this.m_oDisableElement);this.m_oDisableElement=null}};CDrawing.prototype.Get_Width=function(){if(this.m_oMainDiv){return parseInt(this.m_oMainDiv.clientWidth)}return 0};CDrawing.prototype.Get_Height=function(){if(this.m_oMainDiv){return parseInt(this.m_oMainDiv.clientHeight)}return 0};CDrawing.prototype.Get_MainDiv=function(){return this.m_oMainDiv};CDrawing.prototype.Get_GameTree=function(){return this.m_oGameTree};CDrawing.prototype.Get_ElementOffset=function(a){var d=0;var c=0;var b=a;while(b!=this.m_oMainDiv&&b){d+=(b.offsetLeft-b.scrollLeft+b.clientLeft);c+=(b.offsetTop-b.scrollTop+b.clientTop);b=b.offsetParent}return{X:d,Y:c}};CDrawing.prototype.Set_TemplateType=function(a){this.m_eTemplateType=a};CDrawing.prototype.Create_SimpleBoard=function(b){this.Set_TemplateType(EDrawingTemplate.SimpleBoard);this.private_SetMainDiv(b);var a=new CDrawingBoard(this);a.Init(b,this.m_oGameTree);a.Focus();this.m_aElements.push(a);this.Update_Size()};CDrawing.prototype.Create_Viewer=function(l){this.Set_TemplateType(EDrawingTemplate.Viewer);this.private_CreateWrappingMainDiv(l);this.m_nMinWidth=295;var a=this.m_oGameTree;var m=this.m_oMainControl;var d=this.m_oMainDiv.id;var b=25;var g=36;this.m_nViewerTitleH=b;this.m_nViewerToolbarH=g;var n=d+"I";this.private_CreateDiv(m.HtmlElement,n);var t=CreateControlContainer(n);t.Bounds.SetParams(0,0,1000,0,false,false,false,false,-1,b);t.Anchor=(g_anchor_top|g_anchor_left|g_anchor_right);m.AddControl(t);var f=n+"T";this.private_CreateDiv(t.HtmlElement,f);var c=CreateControlContainer(f);c.Bounds.SetParams(0,0,1000,1000,true,false,false,false,-1,-1);c.Anchor=(g_anchor_top|g_anchor_right|g_anchor_bottom);t.AddControl(c);this.m_oViewerTitle=new CDrawingViewerTitle(this);this.m_oViewerTitle.Init(f,a);this.m_aElements.push(this.m_oViewerTitle);var e=d+"T";this.private_CreateDiv(m.HtmlElement,e);var o=CreateControlContainer(e);o.Bounds.SetParams(0,0,1000,0,false,false,false,true,-1,g);o.Anchor=(g_anchor_bottom|g_anchor_left|g_anchor_right);m.AddControl(o);var i=new CDrawingToolbar(this);i.Add_Control(new CDrawingButtonBackwardToStart(this),36,1,EToolbarFloat.Left);i.Add_Control(new CDrawingButtonBackward5(this),36,1,EToolbarFloat.Left);i.Add_Control(new CDrawingButtonBackward(this),36,1,EToolbarFloat.Left);i.Add_Control(new CDrawingButtonForward(this),36,1,EToolbarFloat.Left);i.Add_Control(new CDrawingButtonForward5(this),36,1,EToolbarFloat.Left);i.Add_Control(new CDrawingButtonForwardToEnd(this),36,1,EToolbarFloat.Left);i.Add_Control(new CDrawingButtonAbout(this),36,1,EToolbarFloat.Right);i.Add_Control(new CDrawingButtonGameInfo(this),36,1,EToolbarFloat.Right);i.Init(e,a);this.m_aElements.push(i);var p=d+"B";var h=this.private_CreateDiv(m.HtmlElement,p);var u=CreateControlContainer(p);u.Bounds.SetParams(0,b,1000,g,false,true,false,true,-1,-1);u.Anchor=(g_anchor_left|g_anchor_right|g_anchor_top|g_anchor_bottom);m.AddControl(u);var k=p+"B";this.private_CreateDiv(h,k);var s=CreateControlContainer(k);u.AddControl(s);var j=p+"N";this.private_CreateDiv(h,j);var r=CreateControlContainer(j);u.AddControl(r);var q=new CDrawingBoard(this);q.Init(k,this.m_oGameTree);q.Focus();this.m_aElements.push(q);u.Set_Type(3,q,{RMin:0});this.Update_Size();a.On_EndLoadDrawing()};CDrawing.prototype.Create_BoardWithNavigateButtons=function(n){g_oGlobalSettings.Load_FromLocalStorage();this.m_nMinWidth=739;this.private_SetMainDiv(n);var m=this.m_oGameTree;var j=CreateControlContainer(n);this.private_CreateDiv(j.HtmlElement,n+"div");var o=36;var c=CControlContainerBoardAndBottomButtons.Create(n+"div");c.Set(o+2);var i=c.HtmlElement;j.AddControl(c);var k=n+"_Board";var d=n+"_ToolbarPanel";var a=n+"_Toolbar";this.private_CreateDiv(i,k);var f=this.private_CreateDiv(i,d);f.style.background="rgb(217, 217, 217)";this.private_CreateDiv(f,a);var l=CreateControlContainer(k);l.Bounds.SetParams(0,0,1000,o+2,false,false,false,true,-1,-1);l.Anchor=(g_anchor_top|g_anchor_left|g_anchor_right);c.AddControl(l);var h=new CDrawingBoard(this);h.Init(k,m);h.Focus();var e=CreateControlContainer(d);e.Bounds.SetParams(0,0,1000,0,false,false,false,true,-1,o+2);e.Anchor=(g_anchor_left|g_anchor_bottom|g_anchor_right);c.AddControl(e);var b=CreateControlContainer(a);b.Bounds.SetParams(0,1,1000,1,false,true,false,true,-1,-1);b.Anchor=(g_anchor_left|g_anchor_bottom|g_anchor_right);e.AddControl(b);var g=new CDrawingToolbar(this);g.Add_Control(new CDrawingButtonBackwardToStart(this),36,1,EToolbarFloat.Left);g.Add_Control(new CDrawingButtonBackward5(this),36,1,EToolbarFloat.Left);g.Add_Control(new CDrawingButtonBackward(this),36,1,EToolbarFloat.Left);g.Add_Control(new CDrawingButtonForward(this),36,1,EToolbarFloat.Left);g.Add_Control(new CDrawingButtonForward5(this),36,1,EToolbarFloat.Left);g.Add_Control(new CDrawingButtonForwardToEnd(this),36,1,EToolbarFloat.Left);g.Add_Control(new CDrawingButtonNextVariant(this),36,1,EToolbarFloat.Left);g.Add_Control(new CDrawingButtonPrevVariant(this),36,1,EToolbarFloat.Left);g.Add_Control(new CDrawingButtonEditModeMove(this),36,1,EToolbarFloat.Left);g.Add_Control(new CDrawingButtonEditModeAddRem(this),36,1,EToolbarFloat.Left);g.Add_Control(new CDrawingButtonEditModeTr(this),36,1,EToolbarFloat.Left);g.Add_Control(new CDrawingButtonEditModeSq(this),36,1,EToolbarFloat.Left);g.Add_Control(new CDrawingButtonEditModeCr(this),36,1,EToolbarFloat.Left);g.Add_Control(new CDrawingButtonEditModeX(this),36,1,EToolbarFloat.Left);g.Add_Control(new CDrawingButtonEditModeText(this),36,1,EToolbarFloat.Left);g.Add_Control(new CDrawingButtonEditModeNum(this),36,1,EToolbarFloat.Left);g.Add_Control(new CDrawingButtonGameInfo(this),36,1,EToolbarFloat.Left);g.Add_Control(new CDrawingButtonAbout(this),36,1,EToolbarFloat.Right);g.Add_Control(new CDrawingButtonSettings(this),36,1,EToolbarFloat.Right);g.Init(a,m);this.m_oControl=j;this.m_aElements.push(h);this.m_aElements.push(g);this.Update_Size()};CDrawing.prototype.Create_MixedFullTemplate=function(a){this.m_bMixedTemplate=true;this.m_nMixedRightSide=400;this.m_nMixedBotSize=200;this.private_CreateWrappingMainDiv(a);this.private_UpdateSize(true)};CDrawing.prototype.Create_HorizontalFullTemplate=function(a){this.m_bMixedTemplate=false;this.private_CreateWrappingMainDiv(a);this.private_CreateHorFullTemplate();this.Set_TemplateType(EDrawingTemplate.HorEditor)};CDrawing.prototype.Create_VerticalFullTemplate=function(a){this.m_bMixedTemplate=false;this.private_CreateWrappingMainDiv(a);this.private_CreateVerFullTemplate();this.Set_TemplateType(EDrawingTemplate.VerEditor)};CDrawing.prototype.Create_VerticalSpecialTemplate_1=function(x){this.private_CreateWrappingMainDiv(x);this.m_nMinWidth=332;var c=this.m_oGameTree;var y=this.m_oMainControl;var j=this.m_oMainDiv.id;var k=c.Get_LocalSettings().Is_Embedding();var e=50;var d=j+"B";this.private_CreateDiv(y.HtmlElement,d).style.background="rgb(217, 217, 217)";var E=CreateControlContainer(d);E.Bounds.SetParams(0,0,1000,0,true,false,false,false,-1,e);E.Anchor=(g_anchor_top|g_anchor_left|g_anchor_right);y.AddControl(E);var z=j+"I";this.private_CreateDiv(y.HtmlElement,z);var F=CreateControlContainer(z);F.Bounds.SetParams(true!==k?36+7:0,0,1000,0,true,false,false,false,-1,e);F.Anchor=(g_anchor_top|g_anchor_left|g_anchor_right);y.AddControl(F);var m=j+"O";this.private_CreateDiv(y.HtmlElement,m);var b=CreateControlContainer(m);b.Bounds.SetParams(0,e,1000,1000,false,true,false,false,-1,-1);b.Anchor=(g_anchor_bottom|g_anchor_left|g_anchor_right);y.AddControl(b);var g=z+"W";this.private_CreateDiv(F.HtmlElement,g);var h=CreateControlContainer(g);h.Bounds.SetParams(0,0,500,1000,false,false,false,false,-1,-1);h.Anchor=(g_anchor_top|g_anchor_left|g_anchor_right|g_anchor_bottom);F.AddControl(h);var a=new CDrawingPlayerInfo(this);a.Init(g,c,BOARD_WHITE);this.m_aElements.push(a);var v=z+"B";this.private_CreateDiv(F.HtmlElement,v);var p=CreateControlContainer(v);p.Bounds.SetParams(500,0,1000,1000,false,false,false,false,-1,-1);p.Anchor=(g_anchor_top|g_anchor_left|g_anchor_right|g_anchor_bottom);F.AddControl(p);var o=new CDrawingPlayerInfo(this);o.Init(v,c,BOARD_BLACK);this.m_aElements.push(o);var D=new CDrawingBoard(this);this.m_aElements.push(D);b.Set_Type(3,D,{RMin:this.m_nMixedBotSize-50});var C=m+"B";this.private_CreateDiv(b.HtmlElement,C);var H=CreateControlContainer(C);b.AddControl(H);D.Init(C,c);D.Focus();var u=m+"N";var B=this.private_CreateDiv(b.HtmlElement,u);var q=CreateControlContainer(u);b.AddControl(q);B.style.background="rgb(217, 217, 217)";var l=u+"T";this.private_CreateDiv(q.HtmlElement,l);var A=CreateControlContainer(l);A.Bounds.SetParams(0,1,1000,1,false,true,false,true,-1,-1);A.Anchor=(g_anchor_left|g_anchor_bottom|g_anchor_right);q.AddControl(A);var w=new CDrawingToolbar(this);w.Add_Control(new CDrawingButtonBackwardToStart(this),36,1,EToolbarFloat.Left);w.Add_Control(new CDrawingButtonBackward5(this),36,1,EToolbarFloat.Left);w.Add_Control(new CDrawingButtonBackward(this),36,1,EToolbarFloat.Left);w.Add_Control(new CDrawingButtonForward(this),36,1,EToolbarFloat.Left);w.Add_Control(new CDrawingButtonForward5(this),36,1,EToolbarFloat.Left);w.Add_Control(new CDrawingButtonForwardToEnd(this),36,1,EToolbarFloat.Left);w.Add_Control(new CDrawingButtonAbout(this),36,1,EToolbarFloat.Right);w.Add_Control(new CDrawingButtonAutoPlay(this),36,1,EToolbarFloat.Right);w.Init(l,c);var s=36;this.m_aElements.push(w);this.m_nMixedBotSize=s+160;b.Set_Type(3,D,{RMin:this.m_nMixedBotSize-50});var i=CreateControlContainer(l);i.Bounds.SetParams(0,1,1000,0,false,true,false,false,-1,s);i.Anchor=(g_anchor_left|g_anchor_right|g_anchor_top);q.AddControl(i);var n=u+"U";this.private_CreateDiv(q.HtmlElement,n);var r=CreateControlContainer(n);r.Bounds.SetParams(0,s+2,1000,1000,false,true,false,false,-1,-1);r.Anchor=(g_anchor_left|g_anchor_right|g_anchor_bottom);q.AddControl(r);var f=n+"N";this.private_CreateDiv(r.HtmlElement,f);var G=CreateControlContainer(f);G.Bounds.SetParams(0,0,1000,1000,false,false,false,false,-1,-1);G.Anchor=(g_anchor_left|g_anchor_right|g_anchor_top|g_anchor_bottom);r.AddControl(G);var t=new CDrawingNavigator(this);t.Init(f,c);this.m_aElements.push(t);this.Update_Size();c.On_EndLoadDrawing()};CDrawing.prototype.private_CreateWrappingMainDiv=function(d){g_oGlobalSettings.Load_FromLocalStorage();var a=CreateControlContainer(d);this.m_oControl=a;var c=d+"GB";this.private_CreateDiv(a.HtmlElement,c);var b=CreateControlContainer(c);b.Bounds.SetParams(0,0,1,1,false,false,true,true,-1,-1);b.Anchor=(g_anchor_top|g_anchor_left|g_anchor_right|g_anchor_bottom);a.AddControl(b);this.private_SetMainDiv(c,b)};CDrawing.prototype.private_CreateHorFullTemplate=function(){var b=this.m_oGameTree;var u=this.m_oMainControl;var j=this.m_oMainDiv.id;var t=j;var k=b.Get_LocalSettings().Is_Embedding();this.m_nMixedRightSide=344;var C=new CDrawingBoard(this);u.Set_Type(1,C,{RMin:this.m_nMixedRightSide});var x=t+"_Board";var s=t+"_Panel";this.private_CreateDiv(u.HtmlElement,x);this.private_CreateDiv(u.HtmlElement,s);var H=CreateControlContainer(x);var w=CreateControlContainer(s);u.AddControl(H);u.AddControl(w);C.Init(x,b);C.Focus();var y=s+"_CaT";var d=s+"_Navigator";this.private_CreateDiv(w.HtmlElement,y);this.private_CreateDiv(w.HtmlElement,d);var z=CreateControlContainer(y);z.Bounds.SetParams(0,0,1000,500,false,false,false,false,-1,-1);z.Anchor=(g_anchor_top|g_anchor_left|g_anchor_right|g_anchor_bottom);w.AddControl(z);z.HtmlElement.style.background="rgb(217, 217, 217)";var F=CreateControlContainer(d);F.Bounds.SetParams(0,500,1000,1000,false,false,false,false,-1,-1);F.Anchor=(g_anchor_top|g_anchor_left|g_anchor_right|g_anchor_bottom);w.AddControl(F);var q=new CDrawingNavigator(this);q.Init(d,b);var v=y+"_Info";var l=y+"_Comments";var I=y+"_Toolbar";this.private_CreateDiv(z.HtmlElement,v);this.private_CreateDiv(z.HtmlElement,l);this.private_CreateDiv(z.HtmlElement,I);var c=50;var D=CreateControlContainer(v);D.Bounds.SetParams(true!==k?7+36:0,0,1000,0,true,false,false,false,-1,c);D.Anchor=(g_anchor_top|g_anchor_left|g_anchor_right);z.AddControl(D);var g=v+"_White";var r=v+"_Black";this.private_CreateDiv(D.HtmlElement,g);this.private_CreateDiv(D.HtmlElement,r);var f=CreateControlContainer(g);f.Bounds.SetParams(0,0,500,1000,false,false,false,false,-1,-1);f.Anchor=(g_anchor_top|g_anchor_left|g_anchor_right|g_anchor_bottom);D.AddControl(f);var p=CreateControlContainer(r);p.Bounds.SetParams(500,0,1000,1000,false,false,false,false,-1,-1);p.Anchor=(g_anchor_top|g_anchor_left|g_anchor_right|g_anchor_bottom);D.AddControl(p);var a=new CDrawingPlayerInfo(this);a.Init(g,b,BOARD_WHITE);var o=new CDrawingPlayerInfo(this);o.Init(r,b,BOARD_BLACK);var G=y+"_M";this.private_CreateDiv(z.HtmlElement,G);var e=CreateControlContainer(G);e.Bounds.SetParams(7,7,1000,7,true,true,false,true,36,36);e.Anchor=(g_anchor_top|g_anchor_left);z.AddControl(e);var E=new CDrawingButtonFileMenu(this);E.Init(G,b);this.Register_MenuButton(E);this.m_aElements.push(E);var n=new CDrawingMultiLevelToolbar(this);n.Init(I);var m=n.Get_Height();var h=CreateControlContainer(I);h.Bounds.SetParams(6,0,6,0,true,false,true,true,-1,m);h.Anchor=(g_anchor_left|g_anchor_right|g_anchor_bottom);z.AddControl(h);var i=CreateControlContainer(l);i.Bounds.SetParams(0,c,1000,m+1,false,true,false,true,-1,-1);i.Anchor=(g_anchor_top|g_anchor_left|g_anchor_right|g_anchor_bottom);z.AddControl(i);var B=this;n.Set_OnChangeCallback(function(){m=n.Get_Height();h.Bounds.SetParams(6,0,6,0,true,false,true,true,-1,m);i.Bounds.SetParams(0,c,1000,m+1,false,true,false,true,-1,-1);B.Update_Size(false)});var A=new CDrawingComments(this);A.Init(l,b);this.m_aElements.push(C);this.m_aElements.push(q);this.m_aElements.push(A);this.m_aElements.push(n);this.m_aElements.push(o);this.m_aElements.push(a);this.Update_Size();b.On_EndLoadDrawing()};CDrawing.prototype.private_CreateVerFullTemplate=function(){this.m_nMinWidth=332;var Q=this.m_oGameTree;var n=this.m_oMainControl;var l=this.m_oMainDiv.id;var u=Q.Get_LocalSettings().Is_Embedding();var t=50;var c=l+"B";this.private_CreateDiv(n.HtmlElement,c).style.background="rgb(217, 217, 217)";var B=CreateControlContainer(c);B.Bounds.SetParams(0,0,1000,0,true,false,false,false,-1,t);B.Anchor=(g_anchor_top|g_anchor_left|g_anchor_right);n.AddControl(B);var f=l+"I";this.private_CreateDiv(n.HtmlElement,f);if(true!==u){var S=l+"M";this.private_CreateDiv(n.HtmlElement,S);var q=CreateControlContainer(S);q.Bounds.SetParams(7,7,1000,7,true,true,false,true,36,36);q.Anchor=(g_anchor_top|g_anchor_left);n.AddControl(q);var y=new CDrawingButtonFileMenu(this);y.Init(S,Q);this.Register_MenuButton(y);this.m_aElements.push(y)}var d=CreateControlContainer(f);d.Bounds.SetParams(true!==u?36+7:0,0,1000,0,true,false,false,false,-1,t);d.Anchor=(g_anchor_top|g_anchor_left|g_anchor_right);n.AddControl(d);var s=l+"O";this.private_CreateDiv(n.HtmlElement,s);var r=CreateControlContainer(s);r.Bounds.SetParams(0,t,1000,1000,false,true,false,false,-1,-1);r.Anchor=(g_anchor_bottom|g_anchor_left|g_anchor_right);n.AddControl(r);var p=f+"W";this.private_CreateDiv(d.HtmlElement,p);var P=CreateControlContainer(p);P.Bounds.SetParams(0,0,500,1000,false,false,false,false,-1,-1);P.Anchor=(g_anchor_top|g_anchor_left|g_anchor_right|g_anchor_bottom);d.AddControl(P);var k=new CDrawingPlayerInfo(this);k.Init(p,Q,BOARD_WHITE);this.m_aElements.push(k);var m=f+"B";this.private_CreateDiv(d.HtmlElement,m);var R=CreateControlContainer(m);R.Bounds.SetParams(500,0,1000,1000,false,false,false,false,-1,-1);R.Anchor=(g_anchor_top|g_anchor_left|g_anchor_right|g_anchor_bottom);d.AddControl(R);var i=new CDrawingPlayerInfo(this);i.Init(m,Q,BOARD_BLACK);this.m_aElements.push(i);var K=new CDrawingBoard(this);this.m_aElements.push(K);r.Set_Type(3,K,{RMin:this.m_nMixedBotSize-50});var H=s+"B";this.private_CreateDiv(r.HtmlElement,H);var L=CreateControlContainer(H);r.AddControl(L);K.Init(H,Q);K.Focus();var w=s+"N";var v=this.private_CreateDiv(r.HtmlElement,w);var G=CreateControlContainer(w);r.AddControl(G);v.style.background="rgb(217, 217, 217)";var g=w+"T";this.private_CreateDiv(G.HtmlElement,g);var E=new CDrawingMultiLevelToolbar(this);E.Init(g);var F=E.Get_Height();this.m_aElements.push(E);this.m_nMixedBotSize=F+160;r.Set_Type(3,K,{RMin:this.m_nMixedBotSize-50});var a=CreateControlContainer(g);a.Bounds.SetParams(0,1,1000,0,false,true,false,false,-1,F);a.Anchor=(g_anchor_left|g_anchor_right|g_anchor_top);G.AddControl(a);var o=w+"U";this.private_CreateDiv(G.HtmlElement,o);var O=CreateControlContainer(o);O.Bounds.SetParams(0,F+2,1000,1000,false,true,false,false,-1,-1);O.Anchor=(g_anchor_left|g_anchor_right|g_anchor_bottom);G.AddControl(O);var D=this;E.Set_OnChangeCallback(function(){F=E.Get_Height();D.m_nMixedBotSize=F+160;r.Set_Type(3,K,{RMin:D.m_nMixedBotSize-50});a.Bounds.SetParams(0,1,1000,0,false,true,false,false,-1,F);O.Bounds.SetParams(0,F+2,1000,1000,false,true,false,false,-1,-1);D.Update_Size(false)});var x=36;var M=o+"L";this.private_CreateDiv(O.HtmlElement,M);var e=CreateControlContainer(M);e.Bounds.SetParams(0,0,0,1000,false,false,false,false,x,-1);e.Anchor=(g_anchor_left|g_anchor_top|g_anchor_bottom);O.AddControl(e);var j=o+"R";this.private_CreateDiv(O.HtmlElement,j);var C=CreateControlContainer(j);C.Bounds.SetParams(x,0,1000,1000,true,false,false,false,-1,-1);C.Anchor=(g_anchor_right|g_anchor_top|g_anchor_bottom);O.AddControl(C);var z=j+"N";this.private_CreateDiv(C.HtmlElement,z);var b=CreateControlContainer(z);b.Bounds.SetParams(0,0,1000,1000,false,false,false,false,-1,-1);b.Anchor=(g_anchor_left|g_anchor_right|g_anchor_top|g_anchor_bottom);C.AddControl(b);var h=j+"C";this.private_CreateDiv(C.HtmlElement,h);var A=CreateControlContainer(h);A.Bounds.SetParams(0,0,1000,1000,false,false,false,false,-1,-1);A.Anchor=(g_anchor_left|g_anchor_right|g_anchor_top|g_anchor_bottom);C.AddControl(A);var N=new CDrawingNavigator(this);N.Init(z,Q);this.m_aElements.push(N);var I=new CDrawingComments(this);I.Init(h,Q);this.m_aElements.push(I);var J=new CDrawingNavigatorCommentsTabs(this);J.Init(M,Q,z,h);this.m_aElements.push(J);this.Update_Size();Q.On_EndLoadDrawing();this.m_nVerEditorTitleH=t;this.m_nVerEditorToolbarH=36;this.m_nVerEditorComNavH=160};CDrawing.prototype.Create_BoardCommentsButtonsNavigator=function(a){return this.Create_HorizontalFullTemplate(a)};CDrawing.prototype.Create_Problems=function(o){this.Set_TemplateType(EDrawingTemplate.Problems);var m=this.m_oGameTree;var g=new CDrawingBoard(this);var j=CreateControlContainer(o);var d=o+"RenjuBoard";this.private_CreateDiv(j.HtmlElement,d);var i=CreateControlContainer(d);i.Bounds.SetParams(0,0,1,1,false,false,true,true,-1,-1);i.Anchor=(g_anchor_top|g_anchor_left|g_anchor_right|g_anchor_bottom);j.AddControl(i);this.m_nMixedRightSide=200;i.Set_Type(1,g,{RMin:this.m_nMixedRightSide});var k=o+"_Board";var f=o+"_Panel";this.private_CreateDiv(i.HtmlElement,k);this.private_CreateDiv(i.HtmlElement,f);var l=CreateControlContainer(k);var b=CreateControlContainer(f);i.AddControl(l);i.AddControl(b);b.HtmlElement.style.background="rgb(217, 217, 217)";g.Init(k,m);g.Focus();g.Set_ShellWhiteStones(false);var n=f+"_Toolbar";var q=f+"_Comments";this.private_CreateDiv(b.HtmlElement,q);this.private_CreateDiv(b.HtmlElement,n);var c=36;var h=CreateControlContainer(q);h.Bounds.SetParams(0,c+2,1000,1000,false,true,false,false,-1,-1);h.Anchor=(g_anchor_top|g_anchor_left|g_anchor_right|g_anchor_bottom);b.AddControl(h);var a=CreateControlContainer(n);a.Bounds.SetParams(6,1,1000,1000,true,true,false,true,-1,c);a.Anchor=(g_anchor_left|g_anchor_right|g_anchor_top);b.AddControl(a);var p=new CDrawingComments(this);p.Init(q,m);var e=new CDrawingToolbar(this);e.Add_Control(new CDrawingButtonBackwardToStart(this),36,1,EToolbarFloat.Left);e.Add_Control(new CDrawingButtonAbout(this),36,1,EToolbarFloat.Left);e.Init(n,m);this.m_aElements.push(g);this.m_aElements.push(p);this.m_aElements.push(e);this.m_oControl=j;this.Update_Size();m.On_EndLoadDrawing();this.private_SetMainDiv(d)};CDrawing.prototype.Update_Size=function(a){if(a){this.private_UpdateSize(true)}else{this.m_bNeedUpdateSize=true}};CDrawing.prototype.private_SetMainDiv=function(b,a){this.m_oMainDiv=document.getElementById(b);this.m_oMainControl=a;this.m_oMainDiv.style.background="url('"+g_sBackground+"')";this.m_oMainDiv.onclick=this.private_OnMainDivClick};CDrawing.prototype.private_ClearMainDiv=function(){this.Remove_LabelElement();while(this.m_oMainDiv.firstChild){this.m_oMainDiv.removeChild(this.m_oMainDiv.firstChild)}if(this.m_oMainControl){this.m_oMainControl.Clear()}g_aWindows={}};CDrawing.prototype.private_UpdateSize=function(e){if(true===this.m_bMixedTemplate){var b=this.m_oControl.HtmlElement.clientWidth;var d=this.m_oControl.HtmlElement.clientHeight;if(this.m_nMinWidth>0&&b<this.m_nMinWidth){b=this.m_nMinWidth}var a=-1;if(d-(b-this.m_nMixedRightSide)>this.m_nMixedBotSize+100){a=1}else{a=0}if(this.m_nMixedTemplateIndex!==a){this.m_nMixedTemplateIndex=a;this.private_ClearMainDiv();if(0===this.m_nMixedTemplateIndex){this.private_CreateHorFullTemplate()}else{this.private_CreateVerFullTemplate()}if(this.m_oGameTree){this.m_oGameTree.GoTo_Node(this.m_oGameTree.Get_CurNode(),true);this.m_oGameTree.Update_InterfaceState(true)}}}this.m_bNeedUpdateSize=false;if(this.m_oControl){var b=this.m_oControl.HtmlElement.clientWidth;var d=this.m_oControl.HtmlElement.clientHeight;if(this.m_nMinWidth>0&&b<this.m_nMinWidth){b=this.m_nMinWidth}this.m_oControl.Resize(b,d)}for(var f=0,c=this.m_aElements.length;f<c;f++){this.m_aElements[f].Update_Size(e)}};CDrawing.prototype.private_CreateDiv=function(c,b){var a=document.createElement("div");a.setAttribute("id",b);a.setAttribute("style","position:absolute;padding:0;margin:0;");a.setAttribute("oncontextmenu","return false;");c.appendChild(a);return a};CDrawing.prototype.Register_PassButton=function(a){this.m_oButtons.Pass=a};CDrawing.prototype.Register_BackwardToStartButton=function(a){this.m_oButtons.BackwardToStart.push(a)};CDrawing.prototype.Register_Backward_5Button=function(a){this.m_oButtons.Backward_5.push(a)};CDrawing.prototype.Register_BackwardButton=function(a){this.m_oButtons.Backward.push(a)};CDrawing.prototype.Register_ForwardButton=function(a){this.m_oButtons.Forward.push(a)};CDrawing.prototype.Register_Forward_5Button=function(a){this.m_oButtons.Forward_5.push(a)};CDrawing.prototype.Register_ForwardToEndButton=function(a){this.m_oButtons.ForwardToEnd.push(a)};CDrawing.prototype.Register_NextVariantButton=function(a){this.m_oButtons.NextVariant.push(a)};CDrawing.prototype.Register_PrevVariantButton=function(a){this.m_oButtons.PrevVariant.push(a)};CDrawing.prototype.Register_EditModeMoveButton=function(a){this.m_oButtons.BoardModeMove.push(a)};CDrawing.prototype.Register_EditModeAddRemButton=function(a){this.m_oButtons.BoardModeEditor.push(a)};CDrawing.prototype.Register_EditModeTrButton=function(a){this.m_oButtons.BoardModeTr.push(a)};CDrawing.prototype.Register_EditModeSqButton=function(a){this.m_oButtons.BoardModeSq.push(a)};CDrawing.prototype.Register_EditModeCrButton=function(a){this.m_oButtons.BoardModeCr.push(a)};CDrawing.prototype.Register_EditModeXButton=function(a){this.m_oButtons.BoardModeX.push(a)};CDrawing.prototype.Register_EditModeTextButton=function(a){this.m_oButtons.BoardModeText.push(a)};CDrawing.prototype.Register_EditModeNumButton=function(a){this.m_oButtons.BoardModeNum.push(a)};CDrawing.prototype.Register_EditModeColorButton=function(a){this.m_oButtons.BoardModeColor.push(a)};CDrawing.prototype.Register_Comments=function(a){this.m_aComments.push(a)};CDrawing.prototype.Register_Board=function(a){this.m_oBoard=a};CDrawing.prototype.Register_Navigator=function(a){this.m_oNavigator=a};CDrawing.prototype.Register_TimeLine=function(a){this.m_oTimeLine=a};CDrawing.prototype.Register_AutoPlaySpeed=function(a){this.m_oAutoPlaySlider=a};CDrawing.prototype.Register_AutoPlayButton=function(a){this.m_oAutoPlayButton=a};CDrawing.prototype.Register_SelectBoardModeButton=function(a){this.m_oSelectBoardModeButton=a};CDrawing.prototype.Register_ToolbarCustomizeButton=function(a){this.m_oButtons.ToolbarCustomize=a};CDrawing.prototype.Register_AddLabelElement=function(a){this.Remove_LabelElement();this.m_oAddLabelElement=a};CDrawing.prototype.Register_MenuButton=function(a){this.m_oButtons.Menu=a};CDrawing.prototype.Register_EditorControlButton=function(a){this.m_oButtons.EditorControl=a};CDrawing.prototype.Register_KifuModeButton=function(a){this.m_oButtons.KifuMode=a};CDrawing.prototype.Register_KifuWindow=function(a){this.m_oWindows.Kifu=a};CDrawing.prototype.Remove_LabelElement=function(){if(this.m_oAddLabelElement){var a=this.m_oAddLabelElement;this.m_oAddLabelElement=null;this.m_oMainDiv.removeChild(a)}};CDrawing.prototype.On_StartAutoPlay=function(){if(this.m_oAutoPlayButton){this.m_oAutoPlayButton.Set_State2(EDrawingButtonState2.AutoPlayPlaying)}};CDrawing.prototype.On_StopAutoPlay=function(){if(this.m_oAutoPlayButton){this.m_oAutoPlayButton.Set_State2(EDrawingButtonState2.AutoPlayStopped)}};CDrawing.prototype.Update_AutoPlaySpeed=function(a){if(this.m_oAutoPlaySlider){this.m_oAutoPlaySlider.Update_Pos(a)}};CDrawing.prototype.Update_KifuMode=function(){if(this.m_oButtons.KifuMode){this.m_oButtons.KifuMode.Set_Selected(this.m_oGameTree.Is_KifuMode())}};CDrawing.prototype.Register_BlackInfo=function(a){this.m_oBlackInfo=a};CDrawing.prototype.Register_WhiteInfo=function(a){this.m_oWhiteInfo=a};CDrawing.prototype.Update_BlackName=function(a){if(this.m_oBlackInfo){this.m_oBlackInfo.Update_Name(a)}this.private_UpdateViewerTitle()};CDrawing.prototype.Update_BlackRank=function(a){if(this.m_oBlackInfo){this.m_oBlackInfo.Update_Rank(a)}};CDrawing.prototype.Update_WhiteName=function(a){if(this.m_oWhiteInfo){this.m_oWhiteInfo.Update_Name(a)}this.private_UpdateViewerTitle()};CDrawing.prototype.Update_WhiteRank=function(a){if(this.m_oWhiteInfo){this.m_oWhiteInfo.Update_Rank(a)}};CDrawing.prototype.private_UpdateViewerTitle=function(){if(this.m_oViewerTitle){this.m_oViewerTitle.Set_Title(this.m_oGameTree.Get_MatchName())}};CDrawing.prototype.Update_PassCount=function(a,b){if(this.m_oBlackInfo){this.m_oBlackInfo.Update_PassCount(a)}if(this.m_oWhiteInfo){this.m_oWhiteInfo.Update_PassCount(b)}};CDrawing.prototype.Update_InterfaceState=function(c){for(var f=0,b=this.m_oButtons.BackwardToStart.length;f<b;f++){this.m_oButtons.BackwardToStart[f].Set_Enabled(c.Backward)}for(var f=0,b=this.m_oButtons.Backward_5.length;f<b;f++){this.m_oButtons.Backward_5[f].Set_Enabled(c.Backward)}for(var f=0,b=this.m_oButtons.Backward.length;f<b;f++){this.m_oButtons.Backward[f].Set_Enabled(c.Backward)}for(var f=0,b=this.m_oButtons.Forward.length;f<b;f++){this.m_oButtons.Forward[f].Set_Enabled(c.Forward)}for(var f=0,b=this.m_oButtons.Forward_5.length;f<b;f++){this.m_oButtons.Forward_5[f].Set_Enabled(c.Forward)}for(var f=0,b=this.m_oButtons.ForwardToEnd.length;f<b;f++){this.m_oButtons.ForwardToEnd[f].Set_Enabled(c.Forward)}for(var f=0,b=this.m_oButtons.NextVariant.length;f<b;f++){this.m_oButtons.NextVariant[f].Set_Enabled(c.NextVariant)}for(var f=0,b=this.m_oButtons.PrevVariant.length;f<b;f++){this.m_oButtons.PrevVariant[f].Set_Enabled(c.PrevVariant)}for(var f=0,b=this.m_oButtons.BoardModeMove.length;f<b;f++){this.m_oButtons.BoardModeMove[f].Set_Selected(c.BoardMode===EBoardMode.Move)}for(var f=0,b=this.m_oButtons.BoardModeEditor.length;f<b;f++){this.m_oButtons.BoardModeEditor[f].Set_Selected(c.BoardMode===EBoardMode.AddRemove)}for(var f=0,b=this.m_oButtons.BoardModeTr.length;f<b;f++){this.m_oButtons.BoardModeTr[f].Set_Selected(c.BoardMode===EBoardMode.AddMarkTr)}for(var f=0,b=this.m_oButtons.BoardModeSq.length;f<b;f++){this.m_oButtons.BoardModeSq[f].Set_Selected(c.BoardMode===EBoardMode.AddMarkSq)}for(var f=0,b=this.m_oButtons.BoardModeCr.length;f<b;f++){this.m_oButtons.BoardModeCr[f].Set_Selected(c.BoardMode===EBoardMode.AddMarkCr)}for(var f=0,b=this.m_oButtons.BoardModeX.length;f<b;f++){this.m_oButtons.BoardModeX[f].Set_Selected(c.BoardMode===EBoardMode.AddMarkX)}for(var f=0,b=this.m_oButtons.BoardModeText.length;f<b;f++){this.m_oButtons.BoardModeText[f].Set_Selected(c.BoardMode===EBoardMode.AddMarkTx)}for(var f=0,b=this.m_oButtons.BoardModeNum.length;f<b;f++){this.m_oButtons.BoardModeNum[f].Set_Selected(c.BoardMode===EBoardMode.AddMarkNum)}for(var f=0,b=this.m_oButtons.BoardModeColor.length;f<b;f++){this.m_oButtons.BoardModeColor[f].Set_Selected(c.BoardMode===EBoardMode.AddMarkColor)}if(this.m_oTimeLine){this.m_oTimeLine.Update_Pos(c.TimelinePos)}if(this.m_oSelectBoardModeButton){this.m_oSelectBoardModeButton.On_UpdateBoardMode(c.BoardMode)}if(this.m_oWindows.Kifu){this.m_oWindows.Kifu.Update_NextMove()}this.Update_ColorsCounter();for(var a=0,d=this.m_arrStateHandlers.length;a<d;++a){var e=this.m_arrStateHandlers[a];if(e&&e.OnGameTreeStateChange){e.OnGameTreeStateChange(this.m_oGameTree,c)}}};CDrawing.prototype.Update_Comments=function(b){for(var c=0,a=this.m_aComments.length;c<a;c++){this.m_aComments[c].Update_Comments(b)}};CDrawing.prototype.Update_ColorsCounter=function(){var a=g_aWindows[EWindowType.CountColors];if(a&&a.Is_Visible()){a.Update()}};CDrawing.prototype.Toggle_MultiLevelToolbarMainNavigation=function(){var a=g_oGlobalSettings.Toggle_MultiLevelToolbarMainNavigation();if(this.m_oButtons.ToolbarCustomize){this.m_oButtons.ToolbarCustomize.Set_MainNavigation(a)}return a};CDrawing.prototype.Toggle_MultiLevelToolbarTreeNavigation=function(){var a=g_oGlobalSettings.Toggle_MultiLevelToolbarTreeNavigation();if(this.m_oButtons.ToolbarCustomize){this.m_oButtons.ToolbarCustomize.Set_TreeNavigation(a)}return a};CDrawing.prototype.Toggle_MultiLevelToolbarGeneral=function(){var a=g_oGlobalSettings.Toggle_MultiLevelToolbarGeneral();if(this.m_oButtons.ToolbarCustomize){this.m_oButtons.ToolbarCustomize.Set_General(a)}return a};CDrawing.prototype.Toggle_MultiLevelToolbarAutoPlay=function(){var a=g_oGlobalSettings.Toggle_MultiLevelToolbarAutoPlay();if(this.m_oButtons.ToolbarCustomize){this.m_oButtons.ToolbarCustomize.Set_AutoPlay(a)}return a};CDrawing.prototype.Toggle_MultiLevelToolbarTimeline=function(){var a=g_oGlobalSettings.Toggle_MultiLevelToolbarTimeline();if(this.m_oButtons.ToolbarCustomize){this.m_oButtons.ToolbarCustomize.Set_Timeline(a)}return a};CDrawing.prototype.Toggle_MultiLevelToolbarKifuMode=function(){var a=g_oGlobalSettings.Toggle_MultiLevelToolbarKifuMode();if(this.m_oButtons.ToolbarCustomize){this.m_oButtons.ToolbarCustomize.Set_KifuMode(a)}return a};CDrawing.prototype.Get_DivHeightByWidth=function(c){var b=this.m_oGameTree?this.m_oGameTree.Get_DrawingBoard():null;if(!b){return 0}var a=b.Get_AspectRatio();if(Math.abs(a)<0.1){return 0}var d=1/b.Get_AspectRatio();switch(this.m_eTemplateType){case EDrawingTemplate.SimpleBoard:return d*c;case EDrawingTemplate.Viewer:return this.m_nViewerTitleH+this.m_nViewerToolbarH+d*c;case EDrawingTemplate.VerEditor:return this.m_nVerEditorComNavH+this.m_nVerEditorTitleH+this.m_nVerEditorToolbarH+d*c;case EDrawingTemplate.HorEditor:return(c-this.m_nMixedRightSide)*d;case EDrawingTemplate.Problems:return(c-this.m_nMixedRightSide)*d;case EDrawingTemplate.None:default:return 0}return 0};CDrawing.prototype.Get_TemplateType=function(){return this.m_eTemplateType};CDrawing.prototype.Add_StateHandler=function(a){this.m_arrStateHandlers.push(a)};CDrawing.prototype.Create_ViewerForBooklet=function(l){this.Set_TemplateType(EDrawingTemplate.Viewer);this.private_CreateWrappingMainDiv(l);this.m_oMainDiv.style.background="";this.m_nMinWidth=295;var a=this.m_oGameTree;var m=this.m_oMainControl;var d=this.m_oMainDiv.id;var b=25;var g=36;this.m_nViewerTitleH=b;this.m_nViewerToolbarH=g;var n=d+"I";this.private_CreateDiv(m.HtmlElement,n);var t=CreateControlContainer(n);t.Bounds.SetParams(0,0,1000,0,false,false,false,false,-1,b);t.Anchor=(g_anchor_top|g_anchor_left|g_anchor_right);m.AddControl(t);var f=n+"S";this.private_CreateDiv(t.HtmlElement,f);var c=CreateControlContainer(f);c.Bounds.SetParams(159,0,1000,1000,true,false,false,false,122,-1);c.Anchor=(g_anchor_top|g_anchor_left|g_anchor_bottom);t.AddControl(c);var e=d+"T";this.private_CreateDiv(m.HtmlElement,e);var o=CreateControlContainer(e);o.Bounds.SetParams(109,0,1000,0,true,false,false,true,221,g);o.Anchor=(g_anchor_bottom|g_anchor_left);m.AddControl(o);var i=new CDrawingToolbar(this);i.Add_Control(new CDrawingButtonBackwardToStart(this),36,1,EToolbarFloat.Left);i.Add_Control(new CDrawingButtonBackward5(this),36,1,EToolbarFloat.Left);i.Add_Control(new CDrawingButtonBackward(this),36,1,EToolbarFloat.Left);i.Add_Control(new CDrawingButtonForward(this),36,1,EToolbarFloat.Left);i.Add_Control(new CDrawingButtonForward5(this),36,1,EToolbarFloat.Left);i.Add_Control(new CDrawingButtonForwardToEnd(this),36,1,EToolbarFloat.Left);i.Init(e,a);i.HtmlElement.Control.HtmlElement.style.backgroundColor="";this.m_aElements.push(i);var p=d+"B";var h=this.private_CreateDiv(m.HtmlElement,p);var u=CreateControlContainer(p);u.Bounds.SetParams(0,b,1000,g,false,true,false,true,-1,-1);u.Anchor=(g_anchor_left|g_anchor_right|g_anchor_top|g_anchor_bottom);m.AddControl(u);var k=p+"B";this.private_CreateDiv(h,k);var s=CreateControlContainer(k);u.AddControl(s);var j=p+"N";this.private_CreateDiv(h,j);var r=CreateControlContainer(j);u.AddControl(r);var q=new CDrawingBoard(this);q.Init(k,this.m_oGameTree);q.Focus();this.m_aElements.push(q);u.Set_Type(3,q,{RMin:0});this.Update_Size();a.On_EndLoadDrawing()};function CDrawingFullInfo(){this.m_oGameTree=null;this.HtmlElement={Control:null}}CDrawingFullInfo.prototype.Init=function(){};CDrawingFullInfo.prototype.Update_Size=function(){};"use strict";function CInterfaceState(){this.Backward=true;this.Forward=true;this.NextVariant=true;this.PrevVariant=true;this.BoardMode=EBoardMode.Move;this.TimelinePos=0;this.AutoPlaySpeed=null}"use strict";function CDrawingComments(a){this.m_oDrawing=a;this.m_oGameTree=null;this.HtmlElement={Control:null,TextArea:{Control:null}};var b=this;this.private_OnValueChange=function(){b.private_OnChangeComment()}}CDrawingComments.prototype.Init=function(d,f){this.m_oGameTree=f;this.HtmlElement.Control=CreateControlContainer(d);var c=this.HtmlElement.Control.HtmlElement;c.style.background=new CColor(217,217,217,255).ToString();c.style.boxSizing="content-box";var g=d+"_TextArea";var b=document.createElement("textarea");b.setAttribute("id",g);b.setAttribute("style","position:absolute;padding:0;margin:0;resize:none;outline: none;-moz-appearance: none;padding:2px;");c.appendChild(b);b.onchange=this.private_OnValueChange;b.onblur=this.private_OnValueChange;b.style.outline="none";b.style.margin="0px";b.style.border="1px solid rgb(172,172,172)";b.style.overflowY="auto";var e=this.HtmlElement.Control;this.HtmlElement.TextArea.Control=CreateControlContainer(g);var a=this.HtmlElement.TextArea.Control;a.Bounds.SetParams(6,0,12,6,true,true,true,true,-1,-1);a.Anchor=(g_anchor_top|g_anchor_left|g_anchor_bottom|g_anchor_right);e.AddControl(a);if(this.m_oDrawing){this.m_oDrawing.Register_Comments(this)}this.Update_Size()};CDrawingComments.prototype.Update_Comments=function(a){this.HtmlElement.TextArea.Control.HtmlElement.value=a};CDrawingComments.prototype.Update_Size=function(){var a=this.HtmlElement.Control.HtmlElement.clientWidth;var b=this.HtmlElement.Control.HtmlElement.clientHeight;this.HtmlElement.Control.Resize(a,b)};CDrawingComments.prototype.private_OnChangeComment=function(){this.m_oGameTree.Set_Comment(this.HtmlElement.TextArea.Control.HtmlElement.value)};function CDrawingPlayerInfo(a){this.m_oDrawing=a;this.m_nPlayer=BOARD_EMPTY;this.m_oGameTree=null;this.HtmlElement={Control:null,NameDiv:null,PassCountDiv:null,Image:null};this.m_oImage=null;this.m_sName="";this.m_sRank="";this.m_dPassCount=0}CDrawingPlayerInfo.prototype.Init=function(l,k,j){this.m_nPlayer=j;this.m_oGameTree=k;this.HtmlElement.Control=CreateControlContainer(l);var e=this.HtmlElement.Control.HtmlElement;e.style.backgroundColor=new CColor(217,217,217,255).ToString();this.HtmlElement.NameDiv=document.createElement("div");this.HtmlElement.PassCountDiv=document.createElement("div");this.HtmlElement.Image=document.createElement("canvas");var c=this.HtmlElement.Image;var h=this.HtmlElement.NameDiv;var a=this.HtmlElement.PassCountDiv;e.appendChild(c);e.appendChild(h);e.appendChild(a);h.style.paddingLeft="25px";a.style.paddingLeft="25px";h.style.fontSize="14pt";a.style.fontSize="10pt";c.setAttribute("id",l+"_Image");c.setAttribute("style","position:absolute;padding:0;margin:0;");c.setAttribute("oncontextmenu","return false;");c.style.left="0px";c.style.top="0px";c.style.width=25+"px";c.style.height=25+"px";c.width=25;c.height=25;var f=c.getContext("2d");var g=25;f.clearRect(0,0,25,25);var d=Math.ceil(0.5*g+0.5);var b=Math.ceil(0.5*g+0.5);var i=Math.ceil(0.25*g+0.5);if(BOARD_WHITE===j){f.fillStyle=(new CColor(255,255,255)).ToString();f.strokeStyle=(new CColor(0,0,0)).ToString()}else{if(BOARD_BLACK===j){f.fillStyle=(new CColor(0,0,0)).ToString();f.strokeStyle=(new CColor(0,0,0)).ToString()}}f.beginPath();f.arc(d,b,i,0,2*Math.PI,false);f.fill();f.stroke();if(this.m_oDrawing){if(BOARD_BLACK===j){this.m_oDrawing.Register_BlackInfo(this)}else{if(BOARD_WHITE===j){this.m_oDrawing.Register_WhiteInfo(this)}}}this.private_Update()};CDrawingPlayerInfo.prototype.Update_Size=function(){this.private_Update();var b=this.m_dTextWidth;var a=this.HtmlElement.Control.HtmlElement.clientWidth-25;var c=0;if(a<b){c=0}else{c=(a-b)/2}this.HtmlElement.Image.style.left=c+"px";c+=25;this.HtmlElement.NameDiv.style.paddingLeft=c+"px";this.HtmlElement.PassCountDiv.style.paddingLeft=c+"px";this.HtmlElement.NameDiv.style.overflow="hidden";this.HtmlElement.NameDiv.style.textOverflow="ellipsis";this.HtmlElement.NameDiv.style["-o-text-overflow"]="ellipsis";this.HtmlElement.NameDiv.style.height=25+"px";this.HtmlElement.NameDiv.style.lineHeight=25+"px";this.HtmlElement.NameDiv.style.fontFamily='"Times New Roman", Times, serif';this.HtmlElement.PassCountDiv.style.overflow="hidden";this.HtmlElement.PassCountDiv.style.textOverflow="ellipsis";this.HtmlElement.PassCountDiv.style["-o-text-overflow"]="ellipsis";this.HtmlElement.PassCountDiv.style.height=25+"px";this.HtmlElement.PassCountDiv.style.lineHeight=25+"px";this.HtmlElement.PassCountDiv.style.fontFamily='"Times New Roman", Times, serif'};CDrawingPlayerInfo.prototype.Update_Name=function(a){this.m_sName=a;this.private_Update()};CDrawingPlayerInfo.prototype.Update_Rank=function(a){this.m_sRank=a;this.private_Update()};CDrawingPlayerInfo.prototype.Update_PassCount=function(a){this.m_dPassCount=a;this.private_Update()};CDrawingPlayerInfo.prototype.private_Update=function(){var b=this.HtmlElement.NameDiv;var d=this.HtmlElement.PassCountDiv;var c=(""===this.m_sName?(BOARD_BLACK===this.m_nPlayer?"Black ":"White "):this.m_sName)+(""===this.m_sRank?"":"["+this.m_sRank+"]");var e="Pass "+this.m_dPassCount;Common.Set_InnerTextToElement(b,c);Common.Set_InnerTextToElement(d,e);var a=document.createElement("canvas").getContext("2d");a.font="14pt Times New Roman";this.m_dTextWidth=a.measureText(c).width};function CDrawingViewerTitle(a){this.m_oDrawing=a;this.m_oGameTree=null;this.HtmlElement={Control:null,TitleDiv:null};this.m_sTitle="White vs. Black"}CDrawingViewerTitle.prototype.Init=function(b,c){this.m_oGameTree=c;this.HtmlElement.Control=CreateControlContainer(b);var a=this.HtmlElement.Control.HtmlElement;a.style.backgroundColor=new CColor(217,217,217,255).ToString();this.HtmlElement.TitleDiv=document.createElement("div");a.appendChild(this.HtmlElement.TitleDiv);this.HtmlElement.TitleDiv.style.position="absolute";this.HtmlElement.TitleDiv.style.left="0px";this.HtmlElement.TitleDiv.style.top="0px";this.HtmlElement.TitleDiv.style.overflow="hidden";this.HtmlElement.TitleDiv.style.textOverflow="ellipsis";this.HtmlElement.TitleDiv.style.fontFamily='"Times New Roman", Times, serif';this.HtmlElement.TitleDiv.style.fontSize="16px";this.HtmlElement.TitleDiv.style.height="25px";this.HtmlElement.TitleDiv.style.lineHeight="25px";this.HtmlElement.TitleDiv.style.width="100%";this.HtmlElement.TitleDiv.style.textAlign="center";this.private_Update()};CDrawingViewerTitle.prototype.Set_Title=function(a){this.m_sTitle=a;this.private_Update()};CDrawingViewerTitle.prototype.Update_Size=function(){this.private_Update()};CDrawingViewerTitle.prototype.private_Update=function(){Common.Set_InnerTextToElement(this.HtmlElement.TitleDiv,""+this.m_sTitle)};"use strict";function CDrawingNavigator(b){this.m_oDrawing=b;this.m_oGameTree=null;this.m_oMap=new CNavigatorMap();this.m_bNeedRedrawCurrent=true;this.m_bNeedRedrawMap=true;this.m_bNeedRedrawGameCurrent=true;this.HtmlElement={Control:null,Board:{Control:null},Selection:{Control:null},Current:{Control:null},Lines:{Control:null},Shadows:{Control:null},Nodes:{Control:null},Events:{Control:null},HorScroll:null,VerScroll:null,HorScrollBG:null,VerScrollBG:null,ScrollW:0,ScrollH:0};this.m_oCreateWoodyId=null;this.m_oImageData={W:0,H:0,Board:null,Black:null,White:null,BlackT:null,WhiteT:null,Hor_Start:null,Hor_Start2:null,Hor:null,Hor2:null,Hor_End:null,Ver:null,Ver2:null,Ver3:null,Hor_Start_T:null,Hor_Start2_T:null,Hor_Start2_T_2:null,Hor_Start2_T_3:null,Hor_T:null,Hor2_T:null,Hor2_T_2:null,Hor2_T_3:null,Hor_End_T:null,Ver_T:null,Ver2_T:null,Ver2_T_2:null,Ver2_T_3:null,Ver3_T:null,Triangle:null,Triangle_T:null,Triangle_B:null,Triangle_W:null,Triangle_BT:null,Triangle_WT:null,Target:null,Current:null,GameCurrent:null,Shadow:null,ShadowOff:0};this.m_oOffset={X:0,Y:0};this.m_bMouseLock=false;this.m_bNavigatorScroll=true;this.m_oLastDrawMap={W:0,H:0,X:0,Y:0};this.m_nHorScrollTimerId=null;this.m_nVerScrollTimerId=null;this.m_nHorScrollBlurTimerId=null;this.m_nVerScrollBlurTimerId=null;var c=this;var e=0.01;function d(){if(c.m_bMouseLock){c.m_nHorScrollBlurTimerId=null;return}var g=parseFloat(c.HtmlElement.HorScroll.style.opacity);var f=parseFloat(c.HtmlElement.HorScrollBG.style.opacity);g=Math.max(g-e,0);f=Math.max(f-e,0);c.HtmlElement.HorScroll.style.opacity=g;c.HtmlElement.HorScrollBG.style.opacity=f;if(g>0.001){c.m_nHorScrollBlurTimerId=setTimeout(d,10)}else{c.m_nHorScrollBlurTimerId=null}}function a(){if(c.m_bMouseLock){c.m_nHorScrollBlurTimerId=null;return}var g=parseFloat(c.HtmlElement.VerScroll.style.opacity);var f=parseFloat(c.HtmlElement.VerScrollBG.style.opacity);g=Math.max(g-e,0);f=Math.max(f-e,0);c.HtmlElement.VerScroll.style.opacity=g;c.HtmlElement.VerScrollBG.style.opacity=f;if(g>0.001){c.m_nVerScrollBlurTimerId=setTimeout(a,10)}else{c.m_nVerScrollBlurTimerId=null}}this.private_StartDrawingTimer=function(){return setTimeout(function(){c.private_CreateTrueColorBoard()},20)};this.private_OnMouseDown=function(h){if(c.m_bMouseLock){return}if(c.m_oGameTree){c.m_oGameTree.Focus()}check_MouseDownEvent(h,true);var g=c.private_UpdateMousePos(global_mouseEvent.X,global_mouseEvent.Y);var f=c.m_oMap.Get(g.X,g.Y);if(f.Is_Node()&&c.m_oGameTree){c.m_oGameTree.GoTo_Node(f)}};this.private_OnMouseMove=function(g){if(c.m_bMouseLock){return}check_MouseMoveEvent(g);var f=c.private_UpdateMousePos(global_mouseEvent.X,global_mouseEvent.Y);c.private_UpdateTarget(f.X,f.Y)};this.private_OnMouseOut=function(f){if(c.m_bMouseLock){return}c.private_UpdateTarget(-1,-1)};this.private_OnMouseWheel=function(h){if(c.m_bMouseLock){return false}var k=0;if(undefined!=h.wheelDelta){k=(h.wheelDelta>0)?-45:45}else{k=(h.detail>0)?45:-45}if(h.preventDefault){h.preventDefault()}var j=k;var g=c.m_oMap.Get_Height()+1;var i=c.HtmlElement.Board.Control.HtmlElement.height;var f=(20+g*24-i);c.m_oOffset.Y-=j;c.m_oOffset.Y=Math.min(0,Math.max(c.m_oOffset.Y,-f));c.private_DrawMap();c.private_OnMouseMove(h);c.private_UpdateScrollsPos();c.private_ClearVerScrollBlurTimer();c.HtmlElement.VerScrollBG.style.opacity=0.3;c.HtmlElement.VerScroll.style.opacity=0.5;c.m_nVerScrollBlurTimerId=setTimeout(a,500);return false};this.private_OnFocus=function(){if(c.m_oGameTree){c.m_oGameTree.Focus()}};this.private_ClearHorScrollTimer=function(){if(null!==c.m_nHorScrollTimerId){clearTimeout(c.m_nHorScrollTimerId);c.m_nHorScrollTimerId=null}};this.private_ClearHorScrollBlurTimer=function(){if(null!==c.m_nHorScrollBlurTimerId){clearTimeout(c.m_nHorScrollBlurTimerId);c.m_nHorScrollBlurTimerId=null}};this.private_OnMouseDownHorScrollBG=function(i){c.private_ClearHorScrollTimer();check_MouseDownEvent(i,true);var l=Common_FindPosition(c.HtmlElement.HorScrollBG);var f=global_mouseEvent.X-l.X;var g=c.m_oMap.Get_Width()+1;var j=c.HtmlElement.ScrollW;var m=c.m_oImageData.W-4;f-=j/2;f=Math.max(0,Math.min(m-j,f));var k=200;var h=(20+g*24-m)*(f/(m-j));function n(o){var p=-c.m_oOffset.X;if(p!==h){if(p<h){p=Math.min(h,p+k)}else{p=Math.max(h,p-k)}c.m_oOffset.X=-p;c.private_DrawMap();c.private_UpdateScrollsPos();if(p!==h){c.m_nHorScrollTimerId=setTimeout(n,true===o?300:30)}else{c.m_nHorScrollTimerId=null}}else{c.m_nHorScrollTimerId=null}}n(true)};this.private_OnMouseUpHorScrollBG=function(f){c.private_ClearHorScrollTimer()};this.private_OnMouseOverHorScrollBG=function(){c.private_ClearHorScrollBlurTimer();c.HtmlElement.HorScrollBG.style.opacity=0.3;c.HtmlElement.HorScroll.style.opacity=0.5};this.private_OnMouseOutHorScrollBG=function(){c.private_ClearHorScrollTimer();c.m_nHorScrollBlurTimerId=setTimeout(d,10)};this.private_ClearVerScrollTimer=function(){if(null!==c.m_nVerScrollTimerId){clearTimeout(c.m_nVerScrollTimerId);c.m_nVerScrollTimerId=null}};this.private_ClearVerScrollBlurTimer=function(){if(null!==c.m_nVerScrollBlurTimerId){clearTimeout(c.m_nVerScrollBlurTimerId);c.m_nVerScrollBlurTimerId=null}};this.private_OnMouseDownVerScrollBG=function(l){c.private_ClearVerScrollTimer();check_MouseDownEvent(l,true);var n=Common_FindPosition(c.HtmlElement.VerScrollBG);var g=global_mouseEvent.Y-n.Y;var f=c.m_oMap.Get_Height()+1;var i=c.HtmlElement.ScrollH;var j=c.m_oImageData.H-4;g-=i/2;g=Math.max(0,Math.min(j-i,g));var m=48;var h=(20+f*24-j)*(g/(j-i));function k(o){var p=-c.m_oOffset.Y;if(p!==h){if(p<h){p=Math.min(h,p+m)}else{p=Math.max(h,p-m)}c.m_oOffset.Y=-p;c.private_DrawMap();c.private_UpdateScrollsPos();if(p!==h){c.m_nVerScrollTimerId=setTimeout(k,true===o?300:30)}else{c.m_nVerScrollTimerId=null}}else{c.m_nVerScrollTimerId=null}}k(true)};this.private_OnMouseUpVerScrollBG=function(f){c.private_ClearVerScrollTimer()};this.private_OnMouseOverVerScrollBG=function(){c.private_ClearVerScrollBlurTimer();c.HtmlElement.VerScrollBG.style.opacity=0.3;c.HtmlElement.VerScroll.style.opacity=0.5};this.private_OnMouseOutVerScrollBG=function(){c.private_ClearVerScrollTimer();c.m_nVerScrollBlurTimerId=setTimeout(a,10)};this.private_OnMouseOverHorScroll=function(){c.private_ClearHorScrollBlurTimer();c.HtmlElement.HorScroll.style.opacity=0.7;c.HtmlElement.HorScrollBG.style.opacity=0.3};this.private_OnMouseOutHorScroll=function(){c.private_ClearHorScrollTimer();c.m_nHorScrollBlurTimerId=setTimeout(d,10)};this.private_OnMouseOverVerScroll=function(){c.private_ClearVerScrollBlurTimer();c.HtmlElement.VerScroll.style.opacity=0.7;c.HtmlElement.VerScrollBG.style.opacity=0.3};this.private_OnMouseOutVerScroll=function(){c.HtmlElement.VerScroll.style.opacity=0.5;c.m_nVerScrollBlurTimerId=setTimeout(a,10)};this.private_OnDragStartScroll=function(){c.m_bMouseLock=true};this.private_OnDragEndScroll=function(){c.m_bMouseLock=false;var h=global_mouseEvent.X;var f=global_mouseEvent.Y;var o=Common_FindPosition(c.HtmlElement.HorScrollBG);var j=o.X,i=o.Y,k=c.HtmlElement.HorScrollBG.clientWidth,q=c.HtmlElement.HorScrollBG.clientHeight;if(h<j||h>j+k||f<i||f>i+q){c.m_nHorScrollBlurTimerId=setTimeout(d,10)}var p=Common_FindPosition(c.HtmlElement.VerScrollBG);var m=p.X,l=p.Y,n=c.HtmlElement.VerScrollBG.clientWidth,g=c.HtmlElement.VerScrollBG.clientHeight;if(h<m||h>m+n||f<l||f>l+g){c.m_nVerScrollBlurTimerId=setTimeout(a,10)}};this.private_OnDragHorScroll=function(k,i){k-=2;var g=c.m_oMap.Get_Width()+1;var h=c.HtmlElement.ScrollW;var j=c.m_oImageData.W;var f=(20+g*24-j)*(k/(j-4-h));c.m_oOffset.X=-f;c.private_DrawMap()};this.private_OnDragVerScroll=function(k,j){j-=2;var f=c.m_oMap.Get_Height()+1;var g=c.HtmlElement.ScrollH;var h=c.m_oImageData.H;var i=(20+f*24-h)*(j/(h-4-g));c.m_oOffset.Y=-i;c.private_DrawMap()}}CDrawingNavigator.prototype.Init=function(l,i){if(this.m_oDrawing){this.m_oDrawing.Register_Navigator(this)}this.m_oGameTree=i;this.m_oGameTree.Set_DrawingNavigator(this);this.m_oMap.Set_GameTree(i);this.HtmlElement.Control=CreateControlContainer(l);var g=this.HtmlElement.Control.HtmlElement;var h=this.HtmlElement.Control;var b=l+"_Board";var a=l+"_Selection";var n=l+"_Current";var c=l+"_Lines";var k=l+"_Shadows";var f=l+"_Nodes";var m=l+"_Events";this.private_CreateCanvasElement(g,b);this.private_CreateCanvasElement(g,a);this.private_CreateCanvasElement(g,n);this.private_CreateCanvasElement(g,c);this.private_CreateCanvasElement(g,k);this.private_CreateCanvasElement(g,f);var j=this.private_CreateDivElement(g,m);this.HtmlElement.HorScrollBG=this.private_CreateDivElement(g,l+"HorScroll_BG");this.HtmlElement.HorScroll=this.private_CreateDivElement(g,l+"HorScroll");this.HtmlElement.VerScrollBG=this.private_CreateDivElement(g,l+"VerScroll_BG");this.HtmlElement.VerScroll=this.private_CreateDivElement(g,l+"VerScroll");this.HtmlElement.HorScrollBG.style.background="rgb(0,0,0)";this.HtmlElement.HorScrollBG.style.opacity="0";this.HtmlElement.VerScrollBG.style.background="rgb(0,0,0)";this.HtmlElement.VerScrollBG.style.opacity="0";this.HtmlElement.HorScrollBG.onmousedown=this.private_OnMouseDownHorScrollBG;this.HtmlElement.HorScrollBG.onmouseup=this.private_OnMouseUpHorScrollBG;this.HtmlElement.HorScrollBG.onmouseover=this.private_OnMouseOverHorScrollBG;this.HtmlElement.HorScrollBG.onmouseout=this.private_OnMouseOutHorScrollBG;this.HtmlElement.VerScrollBG.onmousedown=this.private_OnMouseDownVerScrollBG;this.HtmlElement.VerScrollBG.onmouseup=this.private_OnMouseUpVerScrollBG;this.HtmlElement.VerScrollBG.onmouseover=this.private_OnMouseOverVerScrollBG;this.HtmlElement.VerScrollBG.onmouseout=this.private_OnMouseOutVerScrollBG;this.HtmlElement.HorScroll.onmouseover=this.private_OnMouseOverHorScroll;this.HtmlElement.HorScroll.onmouseout=this.private_OnMouseOutHorScroll;this.HtmlElement.VerScroll.onmouseover=this.private_OnMouseOverVerScroll;this.HtmlElement.VerScroll.onmouseout=this.private_OnMouseOutVerScroll;var e=CreateControlContainer(l+"HorScroll_BG");e.Bounds.SetParams(2,0,2,4,true,false,true,true,-1,8);e.Anchor=(g_anchor_left|g_anchor_bottom|g_anchor_right);h.AddControl(e);var d=CreateControlContainer(l+"VerScroll_BG");d.Bounds.SetParams(0,2,4,2,false,true,true,true,8,-1);d.Anchor=(g_anchor_top|g_anchor_bottom|g_anchor_right);h.AddControl(d);this.private_FillHtmlElement(this.HtmlElement.Board,h,b);this.private_FillHtmlElement(this.HtmlElement.Selection,h,a);this.private_FillHtmlElement(this.HtmlElement.Current,h,n);this.private_FillHtmlElement(this.HtmlElement.Lines,h,c);this.private_FillHtmlElement(this.HtmlElement.Shadows,h,k);this.private_FillHtmlElement(this.HtmlElement.Nodes,h,f);this.private_FillHtmlElement(this.HtmlElement.Events,h,m);j.onmousedown=this.private_OnMouseDown;j.onmousemove=this.private_OnMouseMove;j.onmouseout=this.private_OnMouseOut;j.onmousewheel=this.private_OnMouseWheel;if(j.addEventListener){j.addEventListener("DOMMouseScroll",this.private_OnMouseWheel,false)}j.onfocus=this.private_OnFocus;j.tabIndex=-1;j.style.hidefocus=true;j.style.outline=0;this.private_CreateTrueColorStones();this.private_CreateLines();this.private_CreateTarget();this.private_CreateShadows()};CDrawingNavigator.prototype.Update_All=function(){this.private_CreateTrueColorStones();this.private_CreateLines();this.private_CreateTarget();this.private_CreateShadows();this.Update_Size(true)};CDrawingNavigator.prototype.Update_Size=function(c){var a=this.HtmlElement.Control.HtmlElement.clientWidth;var b=this.HtmlElement.Control.HtmlElement.clientHeight;this.HtmlElement.Control.Resize(a,b);this.private_OnResize(a,b,c)};CDrawingNavigator.prototype.Update=function(){if(this.m_oImageData.W<=0||this.m_oImageData.H<=0){return}var d=this.m_oMap.Get_Width()+1;var a=this.m_oMap.Get_Height()+1;var f=this.m_oImageData.W;var c=this.m_oImageData.H;var e=20+d*24;var b=20+a*24;if(e>f){this.HtmlElement.ScrollW=Math.max(50,f*f/e);this.HtmlElement.HorScroll.style.width=Math.max(50,f*f/e)+"px";this.HtmlElement.HorScroll.style.display="block";this.HtmlElement.HorScroll.style.position="absolute";this.HtmlElement.HorScroll.style.top=c-12+"px";this.HtmlElement.HorScroll.style.height=8+"px";this.HtmlElement.HorScroll.style.background=this.private_GetSettings_DarkBoard()?"rgb(220, 220, 220)":"rgb(0,0,0)";this.HtmlElement.HorScroll.style.opacity=0;Common_DragHandler.Init(this.HtmlElement.HorScroll,null,2,f-this.HtmlElement.ScrollW-2,c-12,c-12);this.HtmlElement.HorScroll.onDrag=this.private_OnDragHorScroll;this.HtmlElement.HorScroll.onDragStart=this.private_OnDragStartScroll;this.HtmlElement.HorScroll.onDragEnd=this.private_OnDragEndScroll;this.HtmlElement.HorScrollBG.style.display="block"}else{this.HtmlElement.HorScrollBG.style.display="none";this.HtmlElement.HorScroll.style.display="none"}if(b>c){this.HtmlElement.ScrollH=Math.max(50,c*c/b);this.HtmlElement.VerScroll.style.height=Math.max(50,c*c/b)+"px";this.HtmlElement.VerScroll.style.display="block";this.HtmlElement.VerScroll.style.position="absolute";this.HtmlElement.VerScroll.style.left=f-12+"px";this.HtmlElement.VerScroll.style.width=8+"px";this.HtmlElement.VerScroll.style.background=this.private_GetSettings_DarkBoard()?"rgb(220, 220, 220)":"rgb(0,0,0)";this.HtmlElement.VerScroll.style.opacity=0;Common_DragHandler.Init(this.HtmlElement.VerScroll,null,f-12,f-12,2,c-this.HtmlElement.ScrollH-2);this.HtmlElement.VerScroll.onDrag=this.private_OnDragVerScroll;this.HtmlElement.VerScroll.onDragStart=this.private_OnDragStartScroll;this.HtmlElement.VerScroll.onDragEnd=this.private_OnDragEndScroll;this.HtmlElement.VerScrollBG.style.display="block"}else{this.HtmlElement.VerScrollBG.style.display="none";this.HtmlElement.VerScroll.style.display="none"}this.m_oLastDrawMap.H=-1;this.m_oLastDrawMap.W=-1;this.private_DrawMap();this.private_UpdateScrollsPos()};CDrawingNavigator.prototype.Create_FromGameTree=function(){this.m_oMap.Create_FromGameTree();this.m_oLastDrawMap.H=-1;this.m_oLastDrawMap.W=-1};CDrawingNavigator.prototype.Update_Current=function(a){this.m_bNeedRedrawCurrent=true;var h=this.m_oImageData.W;var l=this.m_oImageData.H;if(h<=0||l<=0){return}var j=this.m_oGameTree.Get_CurNode().Get_NavigatorInfo();var e=j.X,d=j.Y;var g=10+this.m_oOffset.X+e*24;var f=10+this.m_oOffset.Y+d*24;if(false!=a&&true===this.m_bNavigatorScroll&&(g<=10||g>=h-10||f<=10||f>=l-10)){var b=this.m_oMap.Get_Height()+1;var c=(20+b*24-l);var i=this.m_oMap.Get_Width()+1;var k=(20+i*24-h);if(g<=10){this.m_oOffset.X=-e*24}else{if(g>=h-10){this.m_oOffset.X=h-24-10-10-e*24}}if(f<=10){this.m_oOffset.Y=-d*24}else{if(f>=l-10){this.m_oOffset.Y=l-24-10-10-d*24}}this.m_oOffset.X=Math.min(0,Math.max(this.m_oOffset.X,-k));this.m_oOffset.Y=Math.min(0,Math.max(this.m_oOffset.Y,-c));this.private_UpdateScrollsPos();this.private_DrawMap()}};CDrawingNavigator.prototype.Update_GameCurrent=function(){this.m_bNeedRedrawGameCurrent=true};CDrawingNavigator.prototype.Draw=function(){if(this.m_bNeedRedrawCurrent){this.private_DrawCurrentOnTimer()}if(this.m_bNeedRedrawMap){this.private_DrawMapOnTimer()}if(this.m_bNeedRedrawGameCurrent){this.private_DrawGameCurrentOnTimer()}};CDrawingNavigator.prototype.Need_Redraw=function(){if(this.m_bNeedRedrawCurrent||this.m_bNeedRedrawMap){return true}return false};CDrawingNavigator.prototype.private_CreateCanvasElement=function(c,b){var a=document.createElement("canvas");a.setAttribute("id",b);a.setAttribute("style","position:absolute;padding:0;margin:0;");a.setAttribute("oncontextmenu","return false;");c.appendChild(a);return a};CDrawingNavigator.prototype.private_CreateDivElement=function(c,b){var a=document.createElement("div");a.setAttribute("id",b);a.setAttribute("style","position:absolute;padding:0;margin:0;");a.setAttribute("oncontextmenu","return false;");c.appendChild(a);return a};CDrawingNavigator.prototype.private_FillHtmlElement=function(b,a,d){b.Control=CreateControlContainer(d);var c=b.Control;c.Bounds.SetParams(0,0,1000,1000,false,false,false,false,-1,-1);c.Anchor=(g_anchor_top|g_anchor_left|g_anchor_bottom|g_anchor_right);a.AddControl(c)};CDrawingNavigator.prototype.private_OnResize=function(a,b,c){this.private_DrawBackground(a,b,c);this.Update();this.Update_Current(true);this.Update_GameCurrent()};CDrawingNavigator.prototype.private_DrawBackground=function(b,c,d){var a=this.HtmlElement.Board.Control.HtmlElement.getContext("2d");if(b!==this.m_oImageData.W||c!==this.m_oImageData.H||null===this.m_oImageData.Board||null!==this.m_oCreateWoodyId||true===d){this.m_oImageData.W=b;this.m_oImageData.H=c;a.fillStyle=this.private_GetSettings_BoardColor().ToString();a.fillRect(0,0,b,c);if(null!==this.m_oCreateWoodyId){clearTimeout(this.m_oCreateWoodyId)}this.m_oCreateWoodyId=this.private_StartDrawingTimer()}else{a.putImageData(this.m_oImageData.Board,0,0)}};CDrawingNavigator.prototype.private_CreateTrueColorBoard=function(){this.m_oCreateWoodyId=null;var d=this.m_oImageData.W;var k=this.m_oImageData.H;var q=this.HtmlElement.Board.Control.HtmlElement.getContext("2d");if(0===d||0===k){return}var h=q.createImageData(d,k);var z=this.private_GetSettings_BoardColor();var o=z.r;var s=z.g;var e=z.b;var p=new Array(d);for(var c=0;c<d;c++){p[c]=(Math.tan(300*c/d)+1)/2+(Math.tan(100*c/d)+1)/10}var l=new Array(k);for(var a=0;a<k;a++){l[a]=0.02*Math.tan(a/k)}var n,v,y;var x=this.private_GetSettings_LinesColor();if(true===this.private_GetSettings_TrueColorBoard()){var w=0.9;for(var a=0;a<k;a++){for(var c=0;c<d;c++){w=(p[c]+l[a])*40+0.5;w=w-Math.floor(w);if(w<0.2){w=1-w/2}else{if(w<0.4){w=1-(0.4-w)/2}else{w=1}}if(a==k-1||(a==k-2&&c<d-2)||c>=d-1||(c==d-2&&a<k-1)){w=w/2}if(a==0||(a==1&&c>1)||c==0||(c==1&&a>1)){n=128+o*w/2;v=128+s*w/2;y=128+e*w/2}else{n=o*w;v=s*w;y=e*w}var m=(c+a*d)*4;h.data[m+0]=n;h.data[m+1]=v;h.data[m+2]=y;h.data[m+3]=255}}}else{for(var u=0;u<k;u++){for(var t=0;t<d;t++){if(u==0||t==0||u===k-1||t===d-1){n=x.r;v=x.g;y=x.b}else{n=o;v=s;y=e}var m=(t+u*d)*4;h.data[m+0]=n;h.data[m+1]=v;h.data[m+2]=y;h.data[m+3]=255}}}this.m_oImageData.Board=h;q.putImageData(this.m_oImageData.Board,0,0)};CDrawingNavigator.prototype.private_CreateTrueColorStones=function(){var u=this.HtmlElement.Nodes.Control.HtmlElement.getContext("2d");var e=0.8,l=0.7,J=20;this.m_oImageData.Black=u.createImageData(J,J);this.m_oImageData.White=u.createImageData(J,J);this.m_oImageData.BlackT=u.createImageData(J,J);this.m_oImageData.WhiteT=u.createImageData(J,J);var I=this.m_oImageData.Black.data;var C=this.m_oImageData.White.data;var M=this.m_oImageData.BlackT.data;var c=this.m_oImageData.WhiteT.data;var w=this.private_GetSettings_WhiteColor();var m=this.private_GetSettings_BlackColor();var a=this.private_GetSettings_DarkBoard();if(true===this.private_GetSettings_TrueColorStones()){var K=J/2-0.5;var t=K-0.2;var H=Math.sqrt(3);for(var D=0;D<J;D++){for(var B=0;B<J;B++){var G=D-K;var E=B-K;var b=t-Math.sqrt(G*G+E*E);var s=(D*J+J-B-1)*4;if(b>=0){var n=t*t-G*G-E*E;if(n>0){n=Math.sqrt(n)*H}else{n=0}var q=G;var p=E;var o=Math.sqrt(6*(q*q+p*p+n*n));o=(2*n-q+p)/o;var v=0;if(o>0.9){v=(o-0.9)*10}var h=255;if(b<=e){b=(e-b)/e;var L=l;if(G-E<t/3){L=1}h=parseInt((1-b*L)*255)}var F=parseInt(10+10*o+v*140);I[s+0]=F;I[s+1]=F;I[s+2]=F;I[s+3]=h;M[s+0]=F;M[s+1]=F;M[s+2]=F;M[s+3]=parseInt(h*0.5);F=parseInt(200+10*o+v*45);C[s+0]=F;C[s+1]=F;C[s+2]=F;C[s+3]=h;c[s+0]=F;c[s+1]=F;c[s+2]=F;c[s+3]=parseInt(h*0.7)}else{I[s+0]=0;I[s+1]=0;I[s+2]=0;I[s+3]=0;c[s+0]=0;c[s+1]=0;c[s+2]=0;c[s+3]=0}}}}else{var K=J/2-0.5;var t=K-0.2;for(var D=0;D<J;D++){for(var B=0;B<J;B++){var G=D-K;var E=B-K;var b=t-Math.sqrt(G*G+E*E);var s=(D*J+J-B-1)*4;if(b>=0){var h=255;if(b<=e){var A=(e-b)/e;var L=l;if(G-E<t/3){L=1}h=parseInt((1-A*L)*255)}else{if(b<=2*e&&b>=e&&true===a){var A=(2*e-b)/(e);var L=l;if(G-E<t/3){L=1}h=parseInt(A*L*255)}}var k=false;if(b<=2*e){k=true}if(false===k||false===a){I[s+0]=m.r;I[s+1]=m.g;I[s+2]=m.b;I[s+3]=h;M[s+0]=m.r;M[s+1]=m.g;M[s+2]=m.b;M[s+3]=parseInt(h*0.5)}else{I[s+0]=w.r;I[s+1]=w.g;I[s+2]=w.b;I[s+3]=h;M[s+0]=w.r;M[s+1]=w.g;M[s+2]=w.b;M[s+3]=parseInt(h*0.5)}h=255;if(b<=e){var A=(e-b)/e;var L=l;if(G-E<t/3){L=1}h=parseInt((1-A*L)*255)}else{if(b<=2*e&&b>=e&&false===a){var A=(2*e-b)/(e);var L=l;if(G-E<t/3){L=1}h=parseInt(A*L*255)}}if(false===k||true===a){C[s+0]=w.r;C[s+1]=w.g;C[s+2]=w.b;C[s+3]=h;c[s+0]=w.r;c[s+1]=w.g;c[s+2]=w.b;c[s+3]=parseInt(h/2)}else{C[s+0]=m.r;C[s+1]=m.g;C[s+2]=m.b;C[s+3]=h;c[s+0]=m.r;c[s+1]=m.g;c[s+2]=m.b;c[s+3]=parseInt(h/2)}}else{I[s+0]=0;I[s+1]=0;I[s+2]=0;I[s+3]=0;M[s+0]=0;M[s+1]=0;M[s+2]=0;M[s+3]=0;C[s+0]=0;C[s+1]=0;C[s+2]=0;C[s+3]=0;c[s+0]=0;c[s+1]=0;c[s+2]=0;c[s+3]=0}}}}};CDrawingNavigator.prototype.private_CreateLines=function(){var b=96;var n=this.HtmlElement.Lines.Control.HtmlElement.getContext("2d");this.m_oImageData.Hor_Start=n.createImageData(24,24);this.m_oImageData.Hor_Start2=n.createImageData(24,24);this.m_oImageData.Hor=n.createImageData(24,24);this.m_oImageData.Hor2=n.createImageData(24,24);this.m_oImageData.Hor_End=n.createImageData(24,24);this.m_oImageData.Ver=n.createImageData(24,24);this.m_oImageData.Ver2=n.createImageData(24,24);this.m_oImageData.Ver3=n.createImageData(24,24);this.m_oImageData.Hor_Start_T=n.createImageData(24,24);this.m_oImageData.Hor_Start2_T=n.createImageData(24,24);this.m_oImageData.Hor_Start2_T_2=n.createImageData(24,24);this.m_oImageData.Hor_Start2_T_3=n.createImageData(24,24);this.m_oImageData.Hor_T=n.createImageData(24,24);this.m_oImageData.Hor2_T=n.createImageData(24,24);this.m_oImageData.Hor2_T_2=n.createImageData(24,24);this.m_oImageData.Hor2_T_3=n.createImageData(24,24);this.m_oImageData.Hor_End_T=n.createImageData(24,24);this.m_oImageData.Ver_T=n.createImageData(24,24);this.m_oImageData.Ver2_T=n.createImageData(24,24);this.m_oImageData.Ver2_T_2=n.createImageData(24,24);this.m_oImageData.Ver2_T_3=n.createImageData(24,24);this.m_oImageData.Ver3_T=n.createImageData(24,24);var e=this.m_oImageData.Hor_Start.data;var w=this.m_oImageData.Hor_Start2.data;var t=this.m_oImageData.Hor.data;var c=this.m_oImageData.Hor2.data;var s=this.m_oImageData.Hor_End.data;var o=this.m_oImageData.Ver.data;var E=this.m_oImageData.Ver2.data;var k=this.m_oImageData.Ver3.data;var B=this.m_oImageData.Hor_Start_T.data;var f=this.m_oImageData.Hor_Start2_T.data;var x=this.m_oImageData.Hor_Start2_T_2.data;var u=this.m_oImageData.Hor_Start2_T_3.data;var a=this.m_oImageData.Hor_T.data;var C=this.m_oImageData.Hor2_T.data;var y=this.m_oImageData.Hor2_T_2.data;var v=this.m_oImageData.Hor2_T_3.data;var r=this.m_oImageData.Hor_End_T.data;var d=this.m_oImageData.Ver_T.data;var l=this.m_oImageData.Ver2_T.data;var h=this.m_oImageData.Ver2_T_2.data;var g=this.m_oImageData.Ver2_T_3.data;var z=this.m_oImageData.Ver3_T.data;var D=true===this.private_GetSettings_DarkBoard()?200:28;var A=new CColor(D,D,D,255);for(var q=0;q<24;q++){for(var p=0;p<24;p++){var m=(q*24+p)*4;if(p>=12&&(11===q||12===q)){e[m+0]=A.r;e[m+1]=A.b;e[m+2]=A.g;e[m+3]=255;B[m+0]=A.r;B[m+1]=A.b;B[m+2]=A.g;B[m+3]=b}else{e[m+3]=0;B[m+3]=0}if((p>=11&&(11===q||12===q))||(q>=12&&(11===p||12===p))){w[m+0]=A.r;w[m+1]=A.b;w[m+2]=A.g;w[m+3]=255;u[m+0]=A.r;u[m+1]=A.b;u[m+2]=A.g;u[m+3]=b}else{w[m+3]=0;u[m+3]=0}if(p>=11&&(11===q||12===q)){f[m+0]=A.r;f[m+1]=A.b;f[m+2]=A.g;f[m+3]=255}else{if(q>=12&&(11===p||12===p)){f[m+0]=A.r;f[m+1]=A.b;f[m+2]=A.g;f[m+3]=b}else{f[m+3]=0}}if(q>=12&&(11===p||12===p)){x[m+0]=A.r;x[m+1]=A.b;x[m+2]=A.g;x[m+3]=255}else{if(p>=11&&(11===q||12===q)){x[m+0]=A.r;x[m+1]=A.b;x[m+2]=A.g;x[m+3]=b}else{x[m+3]=0}}if(11===q||12===q){t[m+0]=A.r;t[m+1]=A.b;t[m+2]=A.g;t[m+3]=255;a[m+0]=A.r;a[m+1]=A.b;a[m+2]=A.g;a[m+3]=b}else{t[m+3]=0;a[m+3]=0}if((11===q||12===q)||(q>=12&&(11===p||12===p))){c[m+0]=A.r;c[m+1]=A.b;c[m+2]=A.g;c[m+3]=255;v[m+0]=A.r;v[m+1]=A.b;v[m+2]=A.g;v[m+3]=b}else{c[m+3]=0;v[m+3]=0}if(11===q||12===q){C[m+0]=A.r;C[m+1]=A.b;C[m+2]=A.g;C[m+3]=255}else{if(q>=12&&(11===p||12===p)){C[m+0]=A.r;C[m+1]=A.b;C[m+2]=A.g;C[m+3]=b}else{C[m+3]=0}}if(((11===q||12===q)&&p<=12)||(q>=12&&(11===p||12===p))){y[m+0]=A.r;y[m+1]=A.b;y[m+2]=A.g;y[m+3]=255}else{if((11===q||12===q)&&p>12){y[m+0]=A.r;y[m+1]=A.b;y[m+2]=A.g;y[m+3]=b}else{c[m+3]=0;v[m+3]=0}}if(p<=11&&(11===q||12===q)){s[m+0]=A.r;s[m+1]=A.b;s[m+2]=A.g;s[m+3]=255;r[m+0]=A.r;r[m+1]=A.b;r[m+2]=A.g;r[m+3]=b}else{s[m+3]=0;r[m+3]=0}if(11===p||12===p){o[m+0]=A.r;o[m+1]=A.b;o[m+2]=A.g;o[m+3]=255;d[m+0]=A.r;d[m+1]=A.b;d[m+2]=A.g;d[m+3]=b}else{o[m+3]=0;d[m+3]=0}if((11===p||12===p)||(p>=12&&(11===q||12===q))){E[m+0]=A.r;E[m+1]=A.b;E[m+2]=A.g;E[m+3]=255;g[m+0]=A.r;g[m+1]=A.b;g[m+2]=A.g;g[m+3]=b}else{E[m+3]=0;g[m+3]=0}if(((11===p||12===p)&&q<=12)||(p>=12&&(11===q||12===q))){l[m+0]=A.r;l[m+1]=A.b;l[m+2]=A.g;l[m+3]=255}else{if((11===p||12===p)&&q>12){l[m+0]=A.r;l[m+1]=A.b;l[m+2]=A.g;l[m+3]=b}else{l[m+3]=0}}if(11===p||12===p){h[m+0]=A.r;h[m+1]=A.b;h[m+2]=A.g;h[m+3]=255}else{if(p>12&&(11===q||12===q)){h[m+0]=A.r;h[m+1]=A.b;h[m+2]=A.g;h[m+3]=b}else{h[m+3]=0}}if((q<=11&&(11===p||12===p))||(p>=11&&(11===q||12===q))){k[m+0]=A.r;k[m+1]=A.b;k[m+2]=A.g;k[m+3]=255;z[m+0]=A.r;z[m+1]=A.b;z[m+2]=A.g;z[m+3]=b}else{k[m+3]=0;z[m+3]=0}}}this.m_oImageData.Triangle=this.private_DrawTriangle(20,20,20*0.07,A,1,null);this.m_oImageData.Triangle_T=this.private_DrawTriangle(20,20,20*0.07,new CColor(D,D,D,b),1,null);this.m_oImageData.Triangle_B=this.private_DrawTriangle(20,20,20*0.06,new CColor(255,255,255,255),1,this.m_oImageData.Black);this.m_oImageData.Triangle_W=this.private_DrawTriangle(20,20,20*0.06,new CColor(0,0,0,255),1,this.m_oImageData.White);this.m_oImageData.Triangle_BT=this.private_DrawTriangle(20,20,20*0.06,new CColor(255,255,255,b),1,this.m_oImageData.BlackT);this.m_oImageData.Triangle_WT=this.private_DrawTriangle(20,20,20*0.06,new CColor(0,0,0,b),1,this.m_oImageData.WhiteT)};CDrawingNavigator.prototype.private_CreateTarget=function(){var c=24;var b=this.HtmlElement.Selection.Control.HtmlElement.getContext("2d");this.m_oImageData.Target=b.createImageData(c,c);this.m_oImageData.Current=b.createImageData(c,c);this.m_oImageData.GameCurrent=b.createImageData(c,c);var d=this.m_oImageData.Target.data;var a=this.m_oImageData.Current.data;var e=this.m_oImageData.GameCurrent.data;for(var g=0;g<c;g++){for(var h=0;h<c;h++){var f=(h+g*c)*4;d[f+3]=255;a[f+3]=255;e[f+3]=255;if((0===h&&c-1===g)||(c-1===h&&0===g)){d[f+0]=135;d[f+1]=125;d[f+2]=135;a[f+0]=216;a[f+1]=0;a[f+2]=0;e[f+0]=(42*(216/255))|0;e[f+1]=(117*(216/255))|0;e[f+2]=(243*(216/255))|0}else{if(c-1===h||c-1===g){d[f+0]=89;d[f+1]=89;d[f+2]=89;a[f+0]=178;a[f+1]=0;a[f+2]=0;e[f+0]=(42*(178/255))|0;e[f+1]=(117*(178/255))|0;e[f+2]=(243*(178/255))|0}else{if(0===g||0===h){d[f+0]=182;d[f+1]=182;d[f+2]=182;a[f+0]=255;a[f+1]=0;a[f+2]=0;e[f+0]=42;e[f+1]=117;e[f+2]=243}else{d[f+0]=128;d[f+1]=128;d[f+2]=128;a[f+0]=255;a[f+1]=0;a[f+2]=0;e[f+0]=42;e[f+1]=117;e[f+2]=243}}}}}b.putImageData(this.m_oImageData.Target,0,0);b.putImageData(this.m_oImageData.Current,0,30);b.putImageData(this.m_oImageData.GameCurrent,0,60)};CDrawingNavigator.prototype.private_DrawTriangle=function(j,q,h,e,f,b){if(undefined===f){f=1}var i=this.HtmlElement.Lines.Control.HtmlElement.getContext("2d");i.clearRect(0,0,j,q);if(null!==b){i.putImageData(b,0,0)}i.globalAlpha=f;i.strokeStyle=e.ToString();i.fillStyle=e.ToString();i.lineWidth=h;var a=j/2;var l=q*3/4;var g=j*0.1;var p=Math.sqrt(a*a-(l-a)*(l-a))+a;var n=-Math.sqrt(a*a-(l-a)*(l-a))+a;var d=p-g;var c=n+g;var o=g;var m=l;if(null!==b){d=Math.floor(d-0.5);c=Math.ceil(c+0.5);o=Math.ceil(o+0.5);m=Math.floor(m-0.5)}i.beginPath();i.moveTo(j/2,o);i.lineTo(d,m);i.lineTo(c,m);i.closePath();i.stroke();var k=i.getImageData(0,0,j,q);i.putImageData(k,0,0);return k};CDrawingNavigator.prototype.private_CreateShadows=function(){var e=this.HtmlElement.Shadows.Control.HtmlElement.getContext("2d");var l=20;this.m_oImageData.Shadow=e.createImageData(l,l);var b=this.m_oImageData.Shadow.data;this.m_oImageData.ShadowOff=Math.max(parseInt(l*0.15),3);var a=(l-5)/2+1;for(var h=0;h<l;h++){for(var g=0;g<l;g++){var n=Math.abs(h-a);var o=Math.abs(g-a);var m=Math.sqrt(o*o+n*n)/a;var k=(m<1?0.15+0.75*(1-m):0);var c=(l*h+g)*4;b[c+0]=0;b[c+1]=0;b[c+2]=0;b[c+3]=parseInt(255*k)}}};CDrawingNavigator.prototype.private_DrawMap=function(){this.m_bNeedRedrawMap=true;this.Update_Current(false)};CDrawingNavigator.prototype.private_UpdateMousePos=function(e,d){var c=Common_FindPosition(this.HtmlElement.Board.Control.HtmlElement);var b=((e-c.X-10-this.m_oOffset.X)/24)|0;var a=((d-c.Y-10-this.m_oOffset.Y)/24)|0;return{X:b,Y:a}};CDrawingNavigator.prototype.private_UpdateTarget=function(h,g){var b=this.m_oImageData.W;var e=this.m_oImageData.H;if(b<=0||e<=0){return}var a=this.HtmlElement.Selection.Control.HtmlElement.getContext("2d");a.clearRect(0,0,b,e);if(h>=0&&g>=0){var f=10+this.m_oOffset.X+h*24;var d=10+this.m_oOffset.Y+g*24;var c=this.m_oMap.Get(h,g);if(c.Is_Node()){a.putImageData(this.m_oImageData.Target,f,d)}}};CDrawingNavigator.prototype.private_UpdateScrollsPos=function(){var e=-this.m_oOffset.X;var f=this.m_oMap.Get_Width()+1;var h=this.HtmlElement.ScrollW;var j=this.m_oImageData.W;var c=e/(20+f*24-j)*(j-4-h)+2;var i=-this.m_oOffset.Y;var a=this.m_oMap.Get_Height()+1;var d=this.HtmlElement.ScrollH;var g=this.m_oImageData.H;var b=i/(20+a*24-g)*(g-4-d)+2;this.HtmlElement.HorScroll.style.left=c+"px";this.HtmlElement.VerScroll.style.top=b+"px"};CDrawingNavigator.prototype.private_DrawMapOnTimer=function(){var f=this.m_oImageData.W;var q=this.m_oImageData.H;if(0===f||0===q){return}if(this.m_oLastDrawMap.W===f&&this.m_oLastDrawMap.H===q&&Math.abs(this.m_oOffset.X-this.m_oLastDrawMap.X)<1&&Math.abs(this.m_oOffset.Y-this.m_oLastDrawMap.Y)<1){this.m_bNeedRedrawMap=false;return}this.m_oLastDrawMap.W=f;this.m_oLastDrawMap.H=q;this.m_oLastDrawMap.X=this.m_oOffset.X;this.m_oLastDrawMap.Y=this.m_oOffset.Y;var j=this.HtmlElement.Lines.Control.HtmlElement.getContext("2d");var t=this.HtmlElement.Shadows.Control.HtmlElement.getContext("2d");var B=this.HtmlElement.Nodes.Control.HtmlElement.getContext("2d");var c=this.HtmlElement.Selection.Control.HtmlElement.getContext("2d");B.clearRect(0,0,f,q);t.clearRect(0,0,f,q);j.clearRect(0,0,f,q);c.clearRect(0,0,f,q);var p=10+this.m_oOffset.X;var n=10+this.m_oOffset.Y;var s=this.m_oMap.Get_Height();var r=this.private_GetSettings_Shadows();for(var d=0;d<=s-1;d++){var w=n+24*d;if(w>=-24&&w<=q+24){var A=this.m_oMap.Get_LineWidth(d);for(var e=0;e<=A;e++){var z=p+24*e;if(z>=-24&&z<=f+24){var D=this.m_oMap.Get(e,d);if(false===D.Is_Node()){var h=D.Get_Type();var g=D.Is_OnCurrentVariant();switch(h){case ENavigatorElementType.Empty:break;case ENavigatorElementType.Line_Ver:if(!g.bResult){j.putImageData(this.m_oImageData.Ver_T,z,w)}else{j.putImageData(this.m_oImageData.Ver,z,w)}break;case ENavigatorElementType.Line_Ver_Con:if(g.bResult){if(1===g.Temp){j.putImageData(this.m_oImageData.Ver2_T,z,w)}else{j.putImageData(this.m_oImageData.Ver2_T_2,z,w)}}else{j.putImageData(this.m_oImageData.Ver2_T_3,z,w)}break;case ENavigatorElementType.Line_Ver_End:if(!g.bResult){j.putImageData(this.m_oImageData.Ver3_T,z,w)}else{j.putImageData(this.m_oImageData.Ver3,z,w)}}}else{var o=D.Is_OnCurrentVariant();var m=D.Get_Move();var C=m.Get_Type();var a=D.Get_Comment();var v="";var l=0;switch(g_oGlobalSettings.Get_NavigatorLabel()){case ESettingsNavigatorLabels.Empty:v="";break;case ESettingsNavigatorLabels.MoveNumbers:v=""+D.Get_NavigatorInfo().Num;if(v.length<=2){B.font="bold 10px sans-serif"}else{B.font="bold 9px sans-serif";l=-1}break;case ESettingsNavigatorLabels.MoveNumbersCurrentVariant:if(o){v=""+D.Get_NavigatorInfo().Num}else{v=""}if(v.length<=2){B.font="bold 10px sans-serif"}else{B.font="bold 9px sans-serif";l=-1}break;case ESettingsNavigatorLabels.MoveCoordinates:var i=this.m_oGameTree.Get_Board().Get_Size();v=Common_PosValueToString(m.Get_Value(),i.X,i.Y);if(v.length<=2){B.font="bold 10px sans-serif"}else{B.font="bold 8px sans-serif"}break}var k=B.measureText(v).width;if(BOARD_BLACK===C){if(o&&true===r){t.putImageData(this.m_oImageData.Shadow,z+2+this.m_oImageData.ShadowOff,w+2+this.m_oImageData.ShadowOff)}B.putImageData((o?this.m_oImageData.Black:this.m_oImageData.BlackT),z+2,w+2);if(""===a){if(""!==v){B.fillStyle=(o?"#CCC":"rgb(192, 192, 192)");B.fillText(v,z+12-k/2+l,w+24/2+3)}}else{B.putImageData((o?this.m_oImageData.Triangle_B:this.m_oImageData.Triangle_BT),z+2,w+2)}}else{if(BOARD_WHITE===C){if(o&&true===r){t.putImageData(this.m_oImageData.Shadow,z+2+this.m_oImageData.ShadowOff,w+2+this.m_oImageData.ShadowOff)}B.putImageData((o?this.m_oImageData.White:this.m_oImageData.WhiteT),z+2,w+2);if(""===a){if(""!==v){B.fillStyle=(o?"#000":"rgb(56, 56, 56)");B.fillText(v,z+12-k/2+l,w+24/2+3)}}else{B.putImageData((o?this.m_oImageData.Triangle_W:this.m_oImageData.Triangle_WT),z+2,w+2)}}else{B.putImageData((o?this.m_oImageData.Triangle:this.m_oImageData.Triangle_T),z+2,w+2)}}var u=D.Get_NextsCount();var b=D.Get_NextCur();if(0===e){if(0===u){}else{if(1===u){if(o){j.putImageData(this.m_oImageData.Hor_Start,z,w)}else{j.putImageData(this.m_oImageData.Hor_Start_T,z,w)}}else{if(o){if(0==b){j.putImageData(this.m_oImageData.Hor_Start2_T,z,w)}else{j.putImageData(this.m_oImageData.Hor_Start2_T_2,z,w)}}else{j.putImageData(this.m_oImageData.Hor_Start2_T_3,z,w)}}}}else{if(0===u){if(o){j.putImageData(this.m_oImageData.Hor_End,z,w)}else{j.putImageData(this.m_oImageData.Hor_End_T,z,w)}}else{if(1===u){if(o){j.putImageData(this.m_oImageData.Hor,z,w)}else{j.putImageData(this.m_oImageData.Hor_T,z,w)}}else{if(o){if(0===b){j.putImageData(this.m_oImageData.Hor2_T,z,w)}else{j.putImageData(this.m_oImageData.Hor2_T_2,z,w)}}else{j.putImageData(this.m_oImageData.Hor2_T_3,z,w)}}}}if(BOARD_BLACK===C||BOARD_WHITE===C){j.clearRect(z+3,w+3,18,18)}}}}}}this.m_bNeedRedrawMap=false};CDrawingNavigator.prototype.private_DrawCurrentOnTimer=function(){if(!this.m_oGameTree){return}var c=this.m_oImageData.W;var e=this.m_oImageData.H;if(c<=0||e<=0){return}var b=this.m_oGameTree.Get_CurNode().Get_NavigatorInfo();var h=b.X,g=b.Y;var f=10+this.m_oOffset.X+h*24;var d=10+this.m_oOffset.Y+g*24;var a=this.HtmlElement.Current.Control.HtmlElement.getContext("2d");a.clearRect(0,0,c,e);if(f>=-24&&f<=c+24&&d>=-24&&d<=e+24){a.putImageData(this.m_oImageData.Current,f,d)}this.private_DrawGameCurrentOnTimer();this.m_bNeedRedrawCurrent=false};CDrawingNavigator.prototype.private_DrawGameCurrentOnTimer=function(){if(!this.m_oGameTree){return}var g=this.m_oImageData.W;var j=this.m_oImageData.H;if(g<=0||j<=0){return}this.m_bNeedRedrawGameCurrent=false;var a=this.m_oGameTree.Get_CurNode();var h=this.m_oGameTree.Get_GameCurNode();if(null===h||h===a){return}var i=h.Get_NavigatorInfo();var e=i.X,b=i.Y;var f=10+this.m_oOffset.X+e*24;var d=10+this.m_oOffset.Y+b*24;var c=this.HtmlElement.Current.Control.HtmlElement.getContext("2d");if(f>=-24&&f<=g+24&&d>=-24&&d<=j+24){c.putImageData(this.m_oImageData.GameCurrent,f,d)}};CDrawingNavigator.prototype.private_GetSettings_TrueColorBoard=function(){return this.m_oGameTree.Get_LocalSettings().Is_NavigatorTrueColorBoard()};CDrawingNavigator.prototype.private_GetSettings_TrueColorStones=function(){return this.m_oGameTree.Get_LocalSettings().Is_NavigatorTrueColorStones()};CDrawingNavigator.prototype.private_GetSettings_Shadows=function(){return this.m_oGameTree.Get_LocalSettings().Is_NavigatorShadows()};CDrawingNavigator.prototype.private_GetSettings_WhiteColor=function(){return this.m_oGameTree.Get_LocalSettings().Get_NavigatorWhiteColor()};CDrawingNavigator.prototype.private_GetSettings_BlackColor=function(){return this.m_oGameTree.Get_LocalSettings().Get_NavigatorBlackColor()};CDrawingNavigator.prototype.private_GetSettings_BoardColor=function(){return this.m_oGameTree.Get_LocalSettings().Get_NavigatorBoardColor()};CDrawingNavigator.prototype.private_GetSettings_LinesColor=function(){return this.m_oGameTree.Get_LocalSettings().Get_NavigatorLinesColor()};CDrawingNavigator.prototype.private_GetSettings_DarkBoard=function(){return this.m_oGameTree.Get_LocalSettings().Is_NavigatorDarkBoard()};"use strict";var ENavigatorElementType={Empty:-10,Line_Ver:-9,Line_Ver_Con:-8,Line_Ver_End:-7};function CNavigatorElement(b,c,a){this.m_nType=b;this.m_oPrev=c;this.m_oNext=a}CNavigatorElement.prototype.Is_Node=function(){return false};CNavigatorElement.prototype.Get_Type=function(){return this.m_nType};CNavigatorElement.prototype.Get_Next=function(){return this.m_oNext};CNavigatorElement.prototype.Get_Prev=function(){return this.m_oPrev};CNavigatorElement.prototype.Is_OnCurrentVariant=function(){if(ENavigatorElementType.Empty===this.m_nType){return{bResult:false}}else{if(ENavigatorElementType.Line_Ver===this.m_nType){if(this.m_oPrev.Is_OnCurrentVariant()&&this.m_oPrev.Get_NextsCount()>0&&this.m_oPrev.Get_Next().Get_NavigatorInfo().Y>=this.m_oNext.Get_NavigatorInfo().Y){return{bResult:true}}else{return{bResult:false}}}else{if(ENavigatorElementType.Line_Ver_Con===this.m_nType){if(!this.m_oPrev.Is_OnCurrentVariant()){return{bResult:false}}var b=this.m_oNext.Get_NavigatorInfo().Y;var a=this.m_oPrev.Get_Next().Get_NavigatorInfo().Y;if(b<a){return{bResult:true,Temp:0}}else{if(b===a){return{bResult:true,Temp:1}}else{return{bResult:false}}}}else{if(ENavigatorElementType.Line_Ver_End===this.m_nType){return{bResult:this.m_oNext.Is_OnCurrentVariant()}}}}}return{bResult:false}};function CNavigatorMap(){this.m_oMap=[];this.m_oGameTree=null;this.m_nMove=0}CNavigatorMap.prototype.Set_GameTree=function(a){this.m_oGameTree=a};CNavigatorMap.prototype.Clear=function(){this.m_oMap=[];this.m_nMove=0};CNavigatorMap.prototype.Create_FromGameTree=function(){if(this.m_oGameTree){this.Clear();this.Create_FromCurNode(this.m_oGameTree.Get_FirstNode(),0,0)}};CNavigatorMap.prototype.Create_FromCurNode=function(j,b,a){var i=j.Get_MainVariantLen();while(!(this.private_CheckNodeMainVariant(b,a,i))){a++}this.private_FillNodeMainVariant(j,b,a);var m=j.Get_LastNodeInMainVariant();b+=i-1;var e={VY:a};while(true){var d=a;var g=this.m_nMove;var l=m.Get_NextsCount();for(var f=1;f<l;f++){this.m_nMove=g;var h=a;var k=this.Create_FromCurNode(m.Get_Next(f),b+1,a+1);a=k.Y;for(var c=h+1;c<=a;c++){if(c===k.VY){if(l-1===f){this.Set(b,c,new CNavigatorElement(ENavigatorElementType.Line_Ver_End,m,m.Get_Next(f)));break}else{this.Set(b,c,new CNavigatorElement(ENavigatorElementType.Line_Ver_Con,m,m.Get_Next(f)))}}else{if(c<k.VY){this.Set(b,c,new CNavigatorElement(ENavigatorElementType.Line_Ver,m,m.Get_Next(f)))}else{this.Set(b,c,new CNavigatorElement(ENavigatorElementType.Line_Ver,m,m.Get_Next(f+1)))}}}}this.m_nMove=g;if(m===j){break}if(m.Have_Move()){this.m_nMove--}m=m.Get_Prev();b--;a=d}e.Y=a;return e};CNavigatorMap.prototype.Get=function(b,a){if(undefined===this.m_oMap[a]||undefined===this.m_oMap[a][b]){return new CNavigatorElement(ENavigatorElementType.Empty,null,null)}return this.m_oMap[a][b]};CNavigatorMap.prototype.Set=function(c,b,a){if(undefined===this.m_oMap[b]){this.m_oMap[b]=[]}if(a.Is_Node()){if(a.Have_Move()){this.m_nMove++;a.Set_NavigatorInfo(c,b,this.m_nMove)}else{a.Set_NavigatorInfo(c,b,-1)}}this.m_oMap[b][c]=a};CNavigatorMap.prototype.Is_Empty=function(b,a){if(undefined===this.m_oMap[a]||undefined===this.m_oMap[a][b]||ENavigatorElementType.Empty===this.m_oMap[a][b].Get_Type()){return true}return false};CNavigatorMap.prototype.private_CheckNodeMainVariant=function(d,c,a){for(var b=0;b<a;b++){if(false===this.Is_Empty(d+b,c)){return false}}return true};CNavigatorMap.prototype.private_FillNodeMainVariant=function(b,d,c){var a=b;this.Set(d,c,b);while(a.Get_NextsCount()>0){d++;a=a.Get_Next(0);this.Set(d,c,a)}};CNavigatorMap.prototype.Get_Height=function(){return this.m_oMap.length};CNavigatorMap.prototype.Get_Width=function(){var d=0;var c=this.Get_Height();for(var b=0;b<c;b++){var a=this.Get_LineWidth(b);if(a>d){d=a}}return d};CNavigatorMap.prototype.Get_LineWidth=function(a){return this.m_oMap[a].length-1};"use strict";var EDrawingSliderType={Unknown:0,AutoPlaySpeed:0,Timeline:1};function CDrawingSlider(b,a){this.m_oDrawing=b;this.m_oGameTree=null;this.m_nType=a?a:EDrawingSliderType.Unknown;this.HtmlElement={Control:null,Left:null,Right:null,Slider:null};this.m_oBackColor=new CColor(217,217,217,255);this.m_oLeftColor=new CColor(80,80,80,255);this.m_oRightColor=new CColor(190,190,190,255);this.m_oSliderColor=new CColor(80,80,80,255);this.m_oSliderFocusColor=new CColor(130,130,130,255);this.m_nW=0;this.m_dPos=0;this.m_nSize=0;this.m_nOffsetY=17;this.m_nOffsetX=17;this.m_bPosLock=false;var c=this;this.private_OnDrag=function(f,e){var d=c.m_nW-c.m_nSize;if(0===d){return}c.private_UpdatePos((f-c.m_nOffsetX)/d,false);c.private_HandleOnChange(false)};this.private_OnDragStart=function(e,d){c.m_bPosLock=true;c.private_HandleOnChange(false)};this.private_OnDragEnd=function(f,e){c.m_bPosLock=false;var d=c.m_nW-c.m_nSize;if(0===d){return}c.private_UpdatePos((f-c.m_nOffsetX)/d,false);c.private_HandleOnChange(true)}}CDrawingSlider.prototype.Init=function(f){this.m_oGameTree=(this.m_oDrawing?this.m_oDrawing.Get_GameTree():null);switch(this.m_nType){case EDrawingSliderType.AutoPlaySpeed:this.m_oDrawing.Register_AutoPlaySpeed(this);break;case EDrawingSliderType.Timeline:this.m_oDrawing.Register_TimeLine(this);break}this.HtmlElement.Control=CreateControlContainer(f);var c=this.HtmlElement.Control.HtmlElement;c.style.backgroundColor=this.m_oBackColor.ToString();c.style.textDecorationColor=new CColor(255,255,255,255).ToString();var h=f+"_Left";var g=f+"_Right";var a=f+"_Slider";this.HtmlElement.Right=this.private_CreateDivElement(c,g);this.HtmlElement.Left=this.private_CreateDivElement(c,h);this.HtmlElement.Slider=this.private_CreateDivElement(c,a);var e=this;this.HtmlElement.Slider.onmouseover=function(){this.style.backgroundColor=e.m_oSliderFocusColor.ToString()};this.HtmlElement.Slider.onmouseout=function(){this.style.backgroundColor=e.m_oSliderColor.ToString()};var b=CreateControlContainer(g);b.Bounds.SetParams(this.m_nOffsetX,this.m_nOffsetY-1,this.m_nOffsetX,this.m_nOffsetY-1,true,true,true,true,-1,-1);b.Anchor=(g_anchor_top|g_anchor_left|g_anchor_bottom|g_anchor_right);this.HtmlElement.Control.AddControl(b);b.HtmlElement.style.background=this.m_oRightColor.ToString();var d=CreateControlContainer(h);d.Bounds.SetParams(this.m_nOffsetX,this.m_nOffsetY,500,this.m_nOffsetY,true,true,false,true,-1,-1);d.Anchor=(g_anchor_top|g_anchor_left|g_anchor_bottom|g_anchor_right);this.HtmlElement.Control.AddControl(d);d.HtmlElement.style.background=this.m_oLeftColor.ToString();this.Update_Size();this.private_UpdatePos(0)};CDrawingSlider.prototype.Update_Size=function(){var a=this.HtmlElement.Control.HtmlElement.clientWidth;var b=this.HtmlElement.Control.HtmlElement.clientHeight;this.m_nW=a-2*this.m_nOffsetX;this.HtmlElement.Control.Resize(a,b);this.private_OnResize(a,b);this.private_UpdatePos(this.m_dPos,true)};CDrawingSlider.prototype.Update_Pos=function(a){if(true===this.m_bPosLock){return}this.private_UpdatePos(a,true)};CDrawingSlider.prototype.private_OnResize=function(b,d){var c=12;var e=32;switch(this.m_nType){case EDrawingSliderType.AutoPlaySpeed:e=45;break;case EDrawingSliderType.Timeline:e=32;break}this.m_nSize=e;var a=this.HtmlElement.Slider;a.style.width=e+"px";a.style.height=c+"px";a.style.display="block";a.style.position="absolute";a.style.backgroundColor=this.m_oSliderColor.ToString();a.style.top=(this.m_nOffsetY-5)+"px";a.style.left=this.m_nOffsetX+"px";a.style.borderRadius="5px";Common_DragHandler.Init(a,null,this.m_nOffsetX,b-this.m_nOffsetX-e,this.m_nOffsetY-5,this.m_nOffsetY-5);a.onDrag=this.private_OnDrag;a.onDragStart=this.private_OnDragStart;a.onDragEnd=this.private_OnDragEnd;a.style.fontSize=c+"px";a.style.lineHeight=c+"px";a.style.color="rgb(255,255,255)";a.style.textOverflow="clip";a.style.overflow="hidden";a.style.textAlign="center";a.style.cursor="default";a.style.transitionProperty="background";a.style.transitionDuration="0.25s";a.style.fontFamily='"Times New Roman", Times, serif'};CDrawingSlider.prototype.private_CreateDivElement=function(c,b){var a=document.createElement("div");a.setAttribute("id",b);a.setAttribute("style","position:absolute;padding:0;margin:0;");a.setAttribute("oncontextmenu","return false;");c.appendChild(a);return a};CDrawingSlider.prototype.private_UpdatePos=function(c,a){this.m_dPos=Math.min(1,Math.max(c,0));var d=this.m_dPos*this.m_nW;this.HtmlElement.Left.style.width=d+"px";if(false!==a){var b=this.m_dPos*(this.m_nW-this.m_nSize);this.HtmlElement.Slider.style.left=b+this.m_nOffsetX+"px"}};CDrawingSlider.prototype.private_HandleOnChange=function(a){if(!this.m_oGameTree){return}switch(this.m_nType){case EDrawingSliderType.AutoPlaySpeed:this.m_oGameTree.Set_AutoPlaySpeed(this.m_dPos);if(!a){var b=(((this.m_oGameTree.Get_AutoPlayInterval()/1000)*1000)|0)/1000;Common.Set_InnerTextToElement(this.HtmlElement.Slider,b+" s")}else{Common.Set_InnerTextToElement(this.HtmlElement.Slider,"")}break;case EDrawingSliderType.Timeline:this.m_oGameTree.GoTo_NodeByTimeLine(this.m_dPos);break}};"use strict";function CBoardSound(){this.PlaceStone=null;this.NewMessage=null;this.Tick=null;this.TickLast3=null;this.Beep=null;this.BeepBeep=null;this.Challenger=null;this.PrevCountDownTime=null;this.m_bIE=false;this.m_bOn=true}CBoardSound.prototype.Init=function(a,c){var d=document.getElementsByTagName("body");if(d.length<=0){return}this.m_bOn=true;if("IE"===Common.Get_Browser()){this.m_bIE=true}var b=d[0];this.PlaceStone=this.private_AddSound(b,"RenjuBoardApiSoundPlaceStone",a+"/Stone.mp3");this.NewMessage=this.private_AddSound(b,"RenjuBoardApiSoundNewMessage",a+"/NewMessage.mp3");this.Tick=this.private_AddSound(b,"RenjuBoardApiSoundTick","/Src/Files/Tick.ogg");this.TickLast3=this.private_AddSound(b,"RenjuBoardApiSoundTickLast3","/Src/Files/TickLast3.ogg");this.Beep=this.private_AddSound(b,"RenjuBoardApiSoundBeep","/Src/Files/Beep.wav");this.BeepBeep=this.private_AddSound(b,"RenjuBoardApiSoundBeepBeep","/Src/Files/BeepBeep.wav");this.Challenger=this.private_AddSound(b,"RenjuBoardApiSoundChallenger","/Src/Files/Challenger.wav")};CBoardSound.prototype.Play_PlaceStone=function(){this.private_PlaySound(this.PlaceStone)};CBoardSound.prototype.Play_NewMessage=function(){this.private_PlaySound(this.NewMessage)};CBoardSound.prototype.On=function(){this.m_bOn=true};CBoardSound.prototype.Off=function(){this.m_bOn=false};CBoardSound.prototype.private_AddSound=function(c,b,a){var d=document.getElementById(b);if(!d){d=document.createElement("audio");d.id=b;d.preload="preload";d.src=a;c.appendChild(d)}return d};CBoardSound.prototype.private_PlaySound=function(a){if(!a||!this.m_bOn||!g_oGlobalSettings.Is_SoundOn()){return}try{if(this.m_bIE){a.setActive();a.click();a.autoplay="";a.autoplay="autoplay"}else{a.play()}}catch(b){}};CBoardSound.prototype.private_PlayCountDown=function(a){if(a>3){this.private_PlaySound(this.Tick)}else{if(3===a){this.private_PlaySound(this.TickLast3)}}};CBoardSound.prototype.PlayCountDown=function(b,a){if(null===this.PrevCountDownTime&&Math.abs(b-parseInt(b))>0.1){return}if(b<a+1.05&&(null===this.PrevCountDownTime||b>this.PrevCountDownTime||Math.abs(this.PrevCountDownTime-b)>0.99)){this.PrevCountDownTime=b;this.private_PlayCountDown(parseInt(b+0.5))}};CBoardSound.prototype.ResetCountDown=function(){this.PrevCountDownTime=null};CBoardSound.prototype.StopCountDown=function(){this.Tick.pause();this.Tick.currentTime=0;this.TickLast3.pause();this.TickLast3.currentTime=0};CBoardSound.prototype.PlayBeep=function(){this.private_PlaySound(this.Beep)};CBoardSound.prototype.PlayBeepBeep=function(){this.private_PlaySound(this.BeepBeep)};CBoardSound.prototype.PlayChallenger=function(){this.private_PlaySound(this.Challenger)};"use strict";var ESlideState={Message:0,Sgf:1};function CPresentation(a){this.m_oGameTree=a;if(a){a.Set_Drawing(this)}this.m_oControl=null;this.m_aElements=[];this.HtmlElement={MessageElement:null,TextElement:null,PrevButton:null,NextButton:null,NextSgf:null,PrevSgf:null,BoardDisabler:null};this.m_nCurSlide=0;this.m_nSlidesCount=0;this.m_nSlideState=0}CPresentation.prototype.Init=function(w,l){this.private_LoadSlides(l);var e=this.m_oGameTree;var t=CreateControlContainer(w);var z=w+"_Board";var m=w+"_Message";var g=w+"_Next";this.private_CreateDiv(t.HtmlElement,z);var n=this.private_CreateDiv(t.HtmlElement,g);var h=this.private_CreateDiv(t.HtmlElement,m);h.style.backgroundColor="rgb(255,255,255)";h.style["border-radius"]="6px";h.style["-webkit-border-radius"]="6px";h.style["-moz-border-radius"]="5px";h.style["-khtml-border-radius"]="10px";h.style.borderColor="#e3e3e3";h.style.borderWidth="5px";h.style.borderStyle="ridge";h.style.display="block";var E=CreateControlContainer(z);E.Bounds.SetParams(0,0,1000,1000,false,false,false,false,-1,-1);E.Anchor=(g_anchor_top|g_anchor_left|g_anchor_right|g_anchor_bottom);t.AddControl(E);var d=z+"_Centred";this.private_CreateDiv(E.HtmlElement,d);var F=CreateControlContainer(z);E.Set_Type(2);E.AddControl(F);var p=CreateControlContainer(m);p.Bounds.SetParams(350,350,650,650,false,false,false,false,-1,-1);p.Anchor=(g_anchor_top|g_anchor_left|g_anchor_right|g_anchor_bottom);t.AddControl(p);var v=new CDrawingBoard(this);v.Init(z,e);v.Set_Presentation(this);var k=CreateControlContainer(g);k.Bounds.SetParams(0,0,1000,1000,false,false,false,false,-1,-1);k.Anchor=(g_anchor_top|g_anchor_left|g_anchor_right|g_anchor_bottom);t.AddControl(k);var u=g+"_Centred";this.private_CreateDiv(k.HtmlElement,u);var G=CreateControlContainer(u);k.Set_Type(2);k.AddControl(G);var c=u+"_Next";var C=this.private_CreateButton(G.HtmlElement,c);C.value="Далее";C.style.display="none";var q=u+"_Prev";var x=this.private_CreateButton(G.HtmlElement,q);x.value="Назад";x.style.display="none";var A=this;C.addEventListener("click",function(){A.HtmlElement.NextSgf.style.display="none";A.HtmlElement.PrevSgf.style.display="none";A.private_NextStep()},false);x.addEventListener("click",function(){A.HtmlElement.NextSgf.style.display="none";A.HtmlElement.PrevSgf.style.display="none";A.private_PrevStep()},false);var i=CreateControlContainer(c);i.Bounds.SetParams(501,0,2,2,false,false,true,true,-1,25);i.Anchor=(g_anchor_left|g_anchor_right|g_anchor_bottom);G.AddControl(i);var b=CreateControlContainer(q);b.Bounds.SetParams(2,0,499,2,true,false,false,true,-1,25);b.Anchor=(g_anchor_left|g_anchor_right|g_anchor_bottom);G.AddControl(b);var a=m+"_Text";var D=m+"_Next";var B=m+"_Prev";var r=this.private_CreateDiv(h,a);r.style.fontFamily="verdana";r.style.textAlign="justify";r.style.alignItems="center";r.style.overflowY="scroll";var f=this.private_CreateButton(h,D);var j=this.private_CreateButton(h,B);j.addEventListener("click",function(){A.private_PrevStep()},false);f.addEventListener("click",function(){A.private_NextStep()},false);var y=CreateControlContainer(a);y.Bounds.SetParams(0,0,1000,35,false,false,false,true,-1,-1);y.Anchor=(g_anchor_top|g_anchor_left|g_anchor_bottom|g_anchor_right);p.AddControl(y);var o=CreateControlContainer(D);o.Bounds.SetParams(0,0,5,5,false,false,true,true,100,25);o.Anchor=(g_anchor_bottom|g_anchor_right);p.AddControl(o);var s=CreateControlContainer(B);s.Bounds.SetParams(5,0,0,5,true,false,false,true,100,25);s.Anchor=(g_anchor_bottom|g_anchor_left);p.AddControl(s);this.HtmlElement.MessageElement=h;this.HtmlElement.TextElement=r;this.HtmlElement.PrevButton=j;this.HtmlElement.NextButton=f;this.HtmlElement.NextSgf=C;this.HtmlElement.PrevSgf=x;this.HtmlElement.BoardDisabler=n;this.m_aElements.push(v);this.m_oControl=t;this.Update_Size();this.private_GoToStep(0,0)};CPresentation.prototype.Update_Size=function(d){if(this.m_oControl){var a=this.m_oControl.HtmlElement.clientWidth;var c=this.m_oControl.HtmlElement.clientHeight;this.m_oControl.Resize(a,c)}for(var e=0,b=this.m_aElements.length;e<b;e++){this.m_aElements[e].Update_Size(d)}};CPresentation.prototype.Get_NodesCountInSlide=function(){if(null===this.m_aSlides[this.m_nCurSlide].SgfPr||undefined===this.m_aSlides[this.m_nCurSlide].SgfPr.Count){return 0}return this.m_aSlides[this.m_nCurSlide].SgfPr.Count};CPresentation.prototype.On_EndSgfSlide=function(){if(null!==this.m_aSlides[this.m_nCurSlide].SgfPr&&true===this.m_aSlides[this.m_nCurSlide].SgfPr.WaitOnEnd){this.HtmlElement.BoardDisabler.style.display="block";this.HtmlElement.NextSgf.style.display="block";this.HtmlElement.PrevSgf.style.display="block"}else{this.private_GoToPresentationStep(this.m_nCurSlide,2)}};CPresentation.prototype.Register_Board=function(a){};CPresentation.prototype.Update_Comments=function(a){};CPresentation.prototype.Update_InterfaceState=function(){};CPresentation.prototype.Update_BlackName=function(){};CPresentation.prototype.Update_WhiteName=function(){};CPresentation.prototype.Update_BlackRank=function(){};CPresentation.prototype.Update_WhiteRank=function(){};CPresentation.prototype.Update_PassCount=function(){};CPresentation.prototype.On_StopAutoPlay=function(){};CPresentation.prototype.On_StartAutoPlay=function(){};CPresentation.prototype.private_LoadSlides=function(b){var a=b.length;this.m_nSlidesCount=a;this.m_aSlides=[];for(var c=0;c<a;c++){this.m_aSlides[c]={};this.m_aSlides[c].Sgf=b[c]["Sgf"];this.m_aSlides[c].Before=b[c]["Before"];this.m_aSlides[c].After=b[c]["After"];this.m_aSlides[c].Message=b[c]["Message"];if(null===b[c]["SgfPr"]){this.m_aSlides[c].SgfPr=null}else{this.m_aSlides[c].SgfPr={};this.m_aSlides[c].SgfPr.Count=b[c]["SgfPr"]["Count"];this.m_aSlides[c].SgfPr.WaitOnEnd=b[c]["SgfPr"]["WaitOnEnd"];this.m_aSlides[c].SgfPr.Flags={};if(b[c]["SgfPr"]["Flags"]){this.m_aSlides[c].SgfPr.Flags.NewNode=b[c]["SgfPr"]["Flags"]["NewNode"];this.m_aSlides[c].SgfPr.Flags.Move=b[c]["SgfPr"]["Flags"]["Move"];this.m_aSlides[c].SgfPr.Flags.ChangeBoardMode=b[c]["SgfPr"]["Flags"]["ChangeBoardMode"];this.m_aSlides[c].SgfPr.Flags.LoadFile=b[c]["SgfPr"]["Flags"]["LoadFile"]}}}};CPresentation.prototype.private_NextStep=function(){var a=this.m_nCurSlide;if(ESlideState.Message===this.m_nSlideState){if(null!==this.m_aSlides[a].Sgf){this.private_GoToStep(a,ESlideState.Sgf)}else{this.m_nSlideState=ESlideState.Sgf;this.private_NextStep()}}else{if(ESlideState.Sgf===this.m_nSlideState){if(a>=this.m_nSlidesCount-1){return}if(null!==this.m_aSlides[a+1].Message){this.private_GoToStep(a+1,ESlideState.Message)}else{this.m_nCurSlide++;this.m_nSlideState=ESlideState.Message;this.private_NextStep()}}}};CPresentation.prototype.private_PrevStep=function(){var a=this.m_nCurSlide;if(ESlideState.Message===this.m_nSlideState){if(a<=0){return}if(null!==this.m_aSlides[a-1].Sgf){this.private_GoToStep(a-1,ESlideState.Sgf)}else{this.m_nCurSlide--;this.m_nSlideState=ESlideState.Sgf;this.private_PrevStep()}}else{if(ESlideState.Sgf===this.m_nSlideState){if(null!==this.m_aSlides[a].Message){this.private_GoToStep(a,ESlideState.Message)}else{this.m_nSlideState=ESlideState.Message;this.private_PrevStep()}}}};CPresentation.prototype.private_GoToStep=function(d,b){if(d<0||d>=this.m_nSlidesCount){return}this.m_nCurSlide=d;this.m_nSlideState=b;var e=this.m_aSlides[d].Sgf;var a=this.m_aSlides[d].SgfPr;var c=this.m_aSlides[d].Message;if(ESlideState.Message===b){this.HtmlElement.BoardDisabler.style.display="block";if(null!==c){this.private_ShowMessage(c,0===d?null:"Назад",d===this.m_nSlidesCount-1&&null===e?null:"Далее")}else{this.private_NextStep()}}else{if(ESlideState.Sgf===b){this.HtmlElement.BoardDisabler.style.display="none";if(null!==e){this.private_HideMessage();this.m_oGameTree.Reset_EditingFlags();this.m_oGameTree.Load_Sgf(e);this.m_oGameTree.Set_EditingFlags(a.Flags);this.m_oGameTree.Focus()}else{this.private_NextStep()}}}};CPresentation.prototype.private_CreateDiv=function(c,b){var a=document.createElement("div");a.setAttribute("id",b);a.setAttribute("style","position:absolute;padding:0;margin:0;");a.setAttribute("oncontextmenu","return false;");c.appendChild(a);return a};CPresentation.prototype.private_CreateButton=function(c,b){var a=document.createElement("input");a.setAttribute("id",b);a.setAttribute("style","position:absolute;padding:0;margin:0;");a.setAttribute("type","button");c.appendChild(a);return a};CPresentation.prototype.private_ShowMessage=function(b,d,e){var c=this.HtmlElement.PrevButton;var a=this.HtmlElement.NextButton;this.HtmlElement.MessageElement.style.display="block";while(this.HtmlElement.TextElement.firstChild){this.HtmlElement.TextElement.removeChild(this.HtmlElement.TextElement.firstChild)}Common.Set_InnerTextToElement(this.HtmlElement.TextElement,"");if("string"===typeof(b)){Common.Set_InnerTextToElement(this.HtmlElement.TextElement,b)}else{this.HtmlElement.TextElement.appendChild(b)}if(null===d){c.style.display="none"}else{c.style.display="block";c.value=d}if(null===e){a.style.display="none"}else{a.style.display="block";a.value=e}};CPresentation.prototype.private_HideMessage=function(){this.HtmlElement.MessageElement.style.display="none"};function CDrawingVerticalTabs(){this.m_aTabs=[];this.m_oCurTab=null;this.m_aContens=[]}CDrawingVerticalTabs.prototype.Init=function(i,j,f,b){var k=(b?b:200);var h=document.getElementById(i);var g=document.createElement("div");g.style.position="absolute";g.style.left="0px";g.style.top="0px";g.style.bottom="0px";g.style.width=(k-1)+"px";g.style.borderRight="1px solid #cbcbcb";h.appendChild(g);var a=document.createElement("div");a.style.position="absolute";a.style.left=k+"px";a.style.top="0px";a.style.bottom="0px";a.style.right="0px";h.appendChild(a);for(var d=0,c=j.length;d<c;d++){this.private_CreateTabHeader(g,j[d],a)}var e=this.m_aTabs[(f?f:0)];if(e){this.private_SelectTab(e)}};CDrawingVerticalTabs.prototype.Get_TabContent=function(a){return this.m_aContens[a]};CDrawingVerticalTabs.prototype.private_CreateTabHeader=function(c,e,g){var f=document.createElement("div");c.appendChild(f);f.style.color="rgb(68, 68, 68)";var b=this;f.addEventListener("mouseenter",function(){if(b.m_oCurTab!==this){this.style.backgroundColor="rgb(241, 241, 241)"}},false);f.addEventListener("mouseleave",function(){if(b.m_oCurTab!==this){this.style.backgroundColor=""}},false);f.addEventListener("click",function(){b.private_SelectTab(this)},false);var a=document.createElement("div");f.appendChild(a);a.style.padding="7px 2px 7px 20px";var d=document.createElement("div");a.appendChild(d);d.style["-webkit-user-select"]="none";d.style.borderCollapse="collapse";d.style.boxSizing="border-box";d.style.cursor="pointer";d.style.display="block";d.style.fontFamily="Helvetica Neue', Helvetica, Arial, sans-serif";d.style.fontSize="16px";d.style.height="17px";d.style.lineHeight="17.142858505249px";d.style.width="177px";Common.Set_InnerTextToElement(d,e);var d=document.createElement("div");d.style.display="none";d.style.width="100%";d.style.height="100%";g.appendChild(d);this.m_aContens.push(d);this.m_aTabs.push(f)};CDrawingVerticalTabs.prototype.private_SelectTab=function(c){if(this.m_oCurTab===c){return}if(null!==this.m_oCurTab){this.m_oCurTab.style.backgroundColor="";this.m_oCurTab.style.color="rgb(68, 68, 68)";var a=this.private_GetTabIndex(this.m_oCurTab);if(this.m_aContens[a]){this.m_aContens[a].style.display="none"}}this.m_oCurTab=c;c.style.backgroundColor="#7d858c";c.style.color="#fff";var b=this.private_GetTabIndex(this.m_oCurTab);if(this.m_aContens[b]){this.m_aContens[b].style.display="block"}};CDrawingVerticalTabs.prototype.private_GetTabIndex=function(c){for(var a=0,b=this.m_aTabs.length;a<b;a++){if(c===this.m_aTabs[a]){return a}}return -1};"use strict";function CDrawingWindow(){this.HtmlElement={Control:null,InnerDiv:null,InnerControl:null,CloseButton:null,Caption:null,CaptionText:null,CaptionTextControl:null,HandlerL:null,HandlerR:null,HandlerB:null,HandlerT:null,HandlerLT:null,HandlerRT:null,HandlerLB:null,HandlerRB:null};this.m_oOuterBorderColor=new CColor(166,166,166,255);this.m_oInnerBorderColor=new CColor(185,185,185,255);this.m_oBackColor=new CColor(217,217,217,255);this.m_oDrawing=null;this.m_nW=-1;this.m_nH=-1;this.m_bVisible=false;this.m_sWindowId=null;var a=this;this.private_OnDragLeftHandler=function(){var c=parseInt(a.HtmlElement.Control.HtmlElement.style.left);var d=parseInt(a.HtmlElement.Control.HtmlElement.style.width);var b=parseInt(a.HtmlElement.HandlerL.style.left);if(d-b<60){a.HtmlElement.HandlerL.style.left="0px"}else{a.HtmlElement.Control.HtmlElement.style.left=c+b+"px";a.HtmlElement.Control.HtmlElement.style.width=d-b+"px";a.HtmlElement.HandlerL.style.left="0px"}a.Update_Size()};this.private_OnDragRightHandler=function(){var d=parseInt(a.HtmlElement.Control.HtmlElement.style.width);var b=parseInt(a.HtmlElement.HandlerR.style.left);var c=(b+6-d);if(d+c<60){a.HtmlElement.HandlerR.style.left=d-6+"px";return}a.HtmlElement.Control.HtmlElement.style.width=d+c+"px";a.HtmlElement.HandlerR.style.left=d+c-6+"px";a.Update_Size()};this.private_OnDragBottomHandler=function(){var d=parseInt(a.HtmlElement.Control.HtmlElement.style.height);var c=parseInt(a.HtmlElement.HandlerB.style.top);var b=(c+6-d);if(d+b<60){a.HtmlElement.HandlerB.style.top=d-6+"px";return}a.HtmlElement.Control.HtmlElement.style.height=d+b+"px";a.HtmlElement.HandlerB.style.top=d+b-6+"px";a.Update_Size()};this.private_OnDragTopHandler=function(){var b=parseInt(a.HtmlElement.Control.HtmlElement.style.top);var d=parseInt(a.HtmlElement.Control.HtmlElement.style.height);var c=parseInt(a.HtmlElement.HandlerT.style.top);if(d-c<60){a.HtmlElement.HandlerT.style.top="0px";return}a.HtmlElement.Control.HtmlElement.style.top=b+c+"px";a.HtmlElement.Control.HtmlElement.style.height=d-c+"px";a.HtmlElement.HandlerT.style.top="0px";a.Update_Size()};this.private_OnDragLeftTopHandler=function(){var b=parseInt(a.HtmlElement.Control.HtmlElement.style.top);var g=parseInt(a.HtmlElement.Control.HtmlElement.style.height);var f=parseInt(a.HtmlElement.HandlerLT.style.top);if(g-f<60){a.HtmlElement.HandlerLT.style.top="0px"}else{a.HtmlElement.Control.HtmlElement.style.top=b+f+"px";a.HtmlElement.Control.HtmlElement.style.height=g-f+"px";a.HtmlElement.HandlerLT.style.top="0px"}var d=parseInt(a.HtmlElement.Control.HtmlElement.style.left);var e=parseInt(a.HtmlElement.Control.HtmlElement.style.width);var c=parseInt(a.HtmlElement.HandlerLT.style.left);if(e-c<60){a.HtmlElement.HandlerLT.style.left="0px"}else{a.HtmlElement.Control.HtmlElement.style.left=d+c+"px";a.HtmlElement.Control.HtmlElement.style.width=e-c+"px";a.HtmlElement.HandlerLT.style.left="0px"}a.Update_Size()};this.private_OnDragRightTopHandler=function(){var b=parseInt(a.HtmlElement.Control.HtmlElement.style.top);var g=parseInt(a.HtmlElement.Control.HtmlElement.style.height);var f=parseInt(a.HtmlElement.HandlerRT.style.top);if(g-f<60){a.HtmlElement.HandlerRT.style.top="0px"}else{a.HtmlElement.Control.HtmlElement.style.top=b+f+"px";a.HtmlElement.Control.HtmlElement.style.height=g-f+"px";a.HtmlElement.HandlerRT.style.top="0px"}var e=parseInt(a.HtmlElement.Control.HtmlElement.style.width);var c=parseInt(a.HtmlElement.HandlerRT.style.left);var d=(c+6-e);if(e+d<60){a.HtmlElement.HandlerRT.style.left=e-6+"px"}else{a.HtmlElement.Control.HtmlElement.style.width=e+d+"px";a.HtmlElement.HandlerRT.style.left=e+d-6+"px"}a.Update_Size()};this.private_OnDragLeftBottomHandler=function(){var d=parseInt(a.HtmlElement.Control.HtmlElement.style.left);var f=parseInt(a.HtmlElement.Control.HtmlElement.style.width);var b=parseInt(a.HtmlElement.HandlerLB.style.left);if(f-b<60){a.HtmlElement.HandlerLB.style.left="0px"}else{a.HtmlElement.Control.HtmlElement.style.left=d+b+"px";a.HtmlElement.Control.HtmlElement.style.width=f-b+"px";a.HtmlElement.HandlerLB.style.left="0px"}var g=parseInt(a.HtmlElement.Control.HtmlElement.style.height);var e=parseInt(a.HtmlElement.HandlerLB.style.top);var c=(e+6-g);if(g+c<60){a.HtmlElement.HandlerLB.style.top=g-6+"px"}else{a.HtmlElement.Control.HtmlElement.style.height=g+c+"px";a.HtmlElement.HandlerLB.style.top=g+c-6+"px"}a.Update_Size()};this.private_OnDragRightBottomHandler=function(){var e=parseInt(a.HtmlElement.Control.HtmlElement.style.width);var b=parseInt(a.HtmlElement.HandlerRB.style.left);var c=(b+6-e);if(e+c<60){a.HtmlElement.HandlerRB.style.left=e-6+"px"}else{a.HtmlElement.Control.HtmlElement.style.width=e+c+"px";a.HtmlElement.HandlerRB.style.left=e+c-6+"px"}var f=parseInt(a.HtmlElement.Control.HtmlElement.style.height);var d=parseInt(a.HtmlElement.HandlerRB.style.top);var c=(d+6-f);if(f+c<60){a.HtmlElement.HandlerRB.style.top=f-6+"px"}else{a.HtmlElement.Control.HtmlElement.style.height=f+c+"px";a.HtmlElement.HandlerRB.style.top=f+c-6+"px"}a.Update_Size()}}CDrawingWindow.prototype.Init=function(l,u){var B=this;this.m_bVisible=true;this.m_sWindowId=l;this.HtmlElement.Control=CreateControlContainer(l);var U=this.HtmlElement.Control.HtmlElement;var m=this.HtmlElement.Control;U.style.border="1px solid "+this.m_oOuterBorderColor.ToString();U.style.backgroundColor=this.m_oBackColor.ToString();U.style.boxSizing="content-box";U.style.boxShadow="0px 1px 15px rgba(0,0,0,0.8)";U.addEventListener("mousedown",function(){B.private_OnFocus()},false);var Q=l+"_Inner";var h=this.protected_CreateDivElement(U,Q);var q=CreateControlContainer(Q);q.Bounds.SetParams(6,29,8,8,true,true,true,true,-1,-1);q.Anchor=(g_anchor_top|g_anchor_left|g_anchor_bottom|g_anchor_right);m.AddControl(q);h.style.border="1px solid "+this.m_oInnerBorderColor.ToString();h.style.backgroundColor=(new CColor(255,255,255,255)).ToString();h.style.overflow="hidden";this.HtmlElement.InnerDiv=h;this.HtmlElement.InnerControl=q;var r=l+"_Caption";var F=this.protected_CreateDivElement(U,r);var N=CreateControlContainer(r);N.Bounds.SetParams(0,0,1000,1000,false,false,false,false,-1,30);N.Anchor=(g_anchor_top|g_anchor_left|g_anchor_right);m.AddControl(N);var w=r+"_Text";var f=this.protected_CreateDivElement(U,w);var o=CreateControlContainer(w);o.Bounds.SetParams(15,0,55,1000,true,false,true,false,-1,30);o.Anchor=(g_anchor_top|g_anchor_left|g_anchor_right|g_anchor_bottom);N.AddControl(o);f.style.fontFamily="Tahoma, Sans serif";f.style.fontSize="13pt";f.style.textAlign="center";f.style.height="29px";f.style.lineHeight="29px";f.style.overflow="hidden";f.style.textOverflow="ellipsis";f.style["-o-text-overflow"]="ellipsis";f.style.cursor="default";Common.Set_InnerTextToElement(f,"Caption");this.HtmlElement.CaptionText=f;this.HtmlElement.CaptionTextControl=o;var P=l+"_Caption2";var x=this.protected_CreateDivElement(U,P);var O=CreateControlContainer(P);O.Bounds.SetParams(0,0,1000,1000,false,false,false,false,-1,30);O.Anchor=(g_anchor_top|g_anchor_left|g_anchor_right);m.AddControl(O);this.HtmlElement.Caption=x;function n(){global_mouseEvent.LockMouse()}function D(){global_mouseEvent.UnLockMouse()}Common_DragHandler.Init(x,null);x.onDrag=function(ac,ab){var Z=parseInt(B.HtmlElement.Control.HtmlElement.style.left);var V=parseInt(B.HtmlElement.Control.HtmlElement.style.top);var W=parseInt(B.HtmlElement.Caption.style.left);var aa=parseInt(B.HtmlElement.Caption.style.top);B.HtmlElement.Control.HtmlElement.style.left=Z+W+"px";B.HtmlElement.Control.HtmlElement.style.top=V+aa+"px";B.HtmlElement.Caption.style.left="0px";B.HtmlElement.Caption.style.top="0px";B.Update_Size()};x.onDragStart=n;x.onDragEnd=D;if(false!==u){var i=l+"_LeftHandler";var T=this.protected_CreateDivElement(U,i);var g=CreateControlContainer(i);g.Bounds.SetParams(0,6,1000,6,false,true,false,true,6,-1);g.Anchor=(g_anchor_top|g_anchor_left|g_anchor_bottom);m.AddControl(g);T.style.cursor="w-resize";this.HtmlElement.HandlerL=T;var H=l+"_RightHandler";var c=this.protected_CreateDivElement(U,H);var k=CreateControlContainer(H);k.Bounds.SetParams(0,6,0,6,false,true,true,true,6,-1);k.Anchor=(g_anchor_top|g_anchor_right|g_anchor_bottom);m.AddControl(k);c.style.cursor="w-resize";this.HtmlElement.HandlerR=c;var I=l+"_BottomHandler";var t=this.protected_CreateDivElement(U,I);var E=CreateControlContainer(I);E.Bounds.SetParams(6,0,6,0,true,false,true,true,-1,6);E.Anchor=(g_anchor_bottom|g_anchor_right|g_anchor_left);m.AddControl(E);t.style.cursor="s-resize";this.HtmlElement.HandlerB=t;var C=l+"_TopHandler";var a=this.protected_CreateDivElement(U,C);var j=CreateControlContainer(C);j.Bounds.SetParams(6,0,6,1000,true,true,true,false,-1,6);j.Anchor=(g_anchor_top|g_anchor_right|g_anchor_left);m.AddControl(j);a.style.cursor="s-resize";this.HtmlElement.HandlerT=a;var e=l+"_LeftTopHandler";var L=this.protected_CreateDivElement(U,e);var d=CreateControlContainer(e);d.Bounds.SetParams(0,0,1000,1000,false,false,false,false,6,6);d.Anchor=(g_anchor_top|g_anchor_left);m.AddControl(d);L.style.cursor="se-resize";this.HtmlElement.HandlerLT=L;var b=l+"_RightTopHandler";var J=this.protected_CreateDivElement(U,b);var S=CreateControlContainer(b);S.Bounds.SetParams(0,0,0,1000,false,false,true,false,6,6);S.Anchor=(g_anchor_top|g_anchor_right);m.AddControl(S);J.style.cursor="ne-resize";this.HtmlElement.HandlerRT=J;var s=l+"_LeftBottomHandler";var A=this.protected_CreateDivElement(U,s);var K=CreateControlContainer(s);K.Bounds.SetParams(0,0,0,1000,false,false,false,false,6,6);K.Anchor=(g_anchor_bottom|g_anchor_left);m.AddControl(K);A.style.cursor="ne-resize";this.HtmlElement.HandlerLB=A;var y=l+"_RightBottomHandler";var v=this.protected_CreateDivElement(U,y);var G=CreateControlContainer(y);G.Bounds.SetParams(0,0,0,1000,false,false,true,false,6,6);G.Anchor=(g_anchor_bottom|g_anchor_right);m.AddControl(G);v.style.cursor="se-resize";this.HtmlElement.HandlerRB=v;Common_DragHandler.Init(this.HtmlElement.HandlerL,null,null,null,null,null);this.HtmlElement.HandlerL.onDrag=this.private_OnDragLeftHandler;this.HtmlElement.HandlerL.onDragStart=n;this.HtmlElement.HandlerL.onDragEnd=D;Common_DragHandler.Init(this.HtmlElement.HandlerR,null,null,null,null,null);this.HtmlElement.HandlerR.onDrag=this.private_OnDragRightHandler;this.HtmlElement.HandlerR.onDragStart=n;this.HtmlElement.HandlerR.onDragEnd=D;Common_DragHandler.Init(this.HtmlElement.HandlerT,null,null,null,null,null);this.HtmlElement.HandlerT.onDrag=this.private_OnDragTopHandler;this.HtmlElement.HandlerT.onDragStart=n;this.HtmlElement.HandlerT.onDragEnd=D;Common_DragHandler.Init(this.HtmlElement.HandlerB,null,null,null,null,null);this.HtmlElement.HandlerB.onDrag=this.private_OnDragBottomHandler;this.HtmlElement.HandlerB.onDragStart=n;this.HtmlElement.HandlerB.onDragEnd=D;Common_DragHandler.Init(this.HtmlElement.HandlerLT,null,null,null,null,null);this.HtmlElement.HandlerLT.onDrag=this.private_OnDragLeftTopHandler;this.HtmlElement.HandlerLT.onDragStart=n;this.HtmlElement.HandlerLT.onDragEnd=D;Common_DragHandler.Init(this.HtmlElement.HandlerRT,null,null,null,null,null);this.HtmlElement.HandlerRT.onDrag=this.private_OnDragRightTopHandler;this.HtmlElement.HandlerRT.onDragStart=n;this.HtmlElement.HandlerRT.onDragEnd=D;Common_DragHandler.Init(this.HtmlElement.HandlerLB,null,null,null,null,null);this.HtmlElement.HandlerLB.onDrag=this.private_OnDragLeftBottomHandler;this.HtmlElement.HandlerLB.onDragStart=n;this.HtmlElement.HandlerLB.onDragEnd=D;Common_DragHandler.Init(this.HtmlElement.HandlerRB,null,null,null,null,null);this.HtmlElement.HandlerRB.onDrag=this.private_OnDragRightBottomHandler;this.HtmlElement.HandlerRB.onDragStart=n;this.HtmlElement.HandlerRB.onDragEnd=D}var R=l+"_Close";var p=this.protected_CreateDivElement(U,R);var z=CreateControlContainer(R);z.Bounds.SetParams(0,0,6,1000,false,true,true,false,45,20);z.Anchor=(g_anchor_top|g_anchor_right);m.AddControl(z);p.style.backgroundColor=(new CColor(255,0,0,255)).ToString();var M=new CDrawingButtonClose(this.m_oDrawing);M.Init(R,this);M.m_oNormaFColor=new CColor(199,80,80,255);M.m_oHoverFColor=new CColor(224,67,67,255);M.m_oActiveFColor=new CColor(153,61,61,255);this.HtmlElement.CloseButton=M;this.private_UpdateSize()};CDrawingWindow.prototype.Get_Id=function(){return this.m_sWindowId};CDrawingWindow.prototype.Update_Size=function(c){var a=this.HtmlElement.Control.HtmlElement.clientWidth;var b=this.HtmlElement.Control.HtmlElement.clientHeight;if(a!==this.m_nW||b!==this.m_nH||true===c){this.m_nW=a;this.m_nH=b;this.HtmlElement.Control.Resize(a,b);this.HtmlElement.CloseButton.Update_Size()}this.private_CheckPosition()};CDrawingWindow.prototype.Close=function(){this.m_bVisible=false;var a=this.HtmlElement.Control.HtmlElement;a.style.display="none";if(this.m_oGameTree){this.m_oGameTree.Focus()}};CDrawingWindow.prototype.Show=function(h){this.m_bVisible=true;var d=this.HtmlElement.Control.HtmlElement;d.style.display="block";var f=parseInt(d.style.left);var e=parseInt(d.style.top);if(h&&h.Drawing){var c=h.Drawing;var b=c.Get_Width();var g=c.Get_Height();var a=100;if(e>g-a){d.style.top=(g-a)+"px"}if(f>b-a){d.style.left=(b-a)+"px"}}if(f<0){d.style.left="0px"}if(e<0){d.style.top="0px"}};CDrawingWindow.prototype.Focus=function(){};CDrawingWindow.prototype.Set_Caption=function(a){Common.Set_InnerTextToElement(this.HtmlElement.CaptionText,a)};CDrawingWindow.prototype.protected_CreateDivElement=function(d,c,a){var b=document.createElement(a?a:"div");if(c){b.setAttribute("id",c)}b.setAttribute("style","position:absolute;padding:0;margin:0;");b.setAttribute("oncontextmenu","return false;");d.appendChild(b);return b};CDrawingWindow.prototype.protected_UpdateSizeAndPosition=function(c){if(!c){return}this.m_oDrawing=c;var b=this.HtmlElement.Control.HtmlElement;var a=parseInt(b.style.width);var d=parseInt(b.style.height);var f=Math.max(0,((this.m_oDrawing.Get_Width()-a)/2));var e=Math.max(0,((this.m_oDrawing.Get_Height()-d)/2));b.style.left=f+"px";b.style.top=e+"px"};CDrawingWindow.prototype.private_UpdateSize=function(){var a=this.HtmlElement.Control.HtmlElement;var b=this.Get_DefaultWindowSize();if(null!==b&&undefined!==b){a.style.width=b.W+"px";a.style.height=b.H+"px"}};CDrawingWindow.prototype.Get_DefaultWindowSize=function(){return null};CDrawingWindow.prototype.Is_Visible=function(){return this.m_bVisible};CDrawingWindow.prototype.Update=function(){};CDrawingWindow.prototype.private_OnFocus=function(){};CDrawingWindow.prototype.private_CheckPosition=function(){var e=this.HtmlElement.Control.HtmlElement;var b=e.parentNode;if(!b){return}var h=parseInt(b.clientWidth);var d=parseInt(b.clientHeight);var g=parseInt(this.HtmlElement.Control.HtmlElement.style.left);var f=parseInt(this.HtmlElement.Control.HtmlElement.style.top);var c=parseInt(this.HtmlElement.Control.HtmlElement.style.width);var a=parseInt(this.HtmlElement.Control.HtmlElement.style.height);if(c>h+1||a>d+1){if(c>h+1){this.HtmlElement.Control.HtmlElement.style.width=h+"px"}if(a>d+1){this.HtmlElement.Control.HtmlElement.style.height=d+"px"}this.Update_Size();return}if(g+c>h){this.HtmlElement.Control.HtmlElement.style.left=(h-c)+"px"}if(g<=0){this.HtmlElement.Control.HtmlElement.style.left="0px"}if(f+a>d){this.HtmlElement.Control.HtmlElement.style.top=(d-a)+"px"}if(f<=0){this.HtmlElement.Control.HtmlElement.style.top="0px"}};function CDrawingConfirmWindow(){CDrawingConfirmWindow.superclass.constructor.call(this);this.HtmlElement.OKButton=null;this.HtmlElement.CancelButton=null;this.HtmlElement.OkButtonControl=null;this.HtmlElement.CancelButtonControl=null;this.HtmlElement.OkCancelDiv=null;this.HtmlElement.ConfirmInnerDiv=null;this.HtmlElement.ConfirmInnerControl=null}CommonExtend(CDrawingConfirmWindow,CDrawingWindow);CDrawingConfirmWindow.prototype.Init=function(c,s){CDrawingConfirmWindow.superclass.Init.call(this,c,s);var o=this.HtmlElement.InnerDiv;var m=this.HtmlElement.InnerControl;var l=o.id;var d=l+"Content";var n=l+"Buttons";var g=this.protected_CreateDivElement(o,d);var r=this.protected_CreateDivElement(o,n);var i=CreateControlContainer(d);i.Bounds.SetParams(0,0,0,40,true,true,true,true,-1,-1);i.Anchor=(g_anchor_left|g_anchor_top|g_anchor_bottom|g_anchor_right);m.AddControl(i);var f=CreateControlContainer(n);f.Bounds.SetParams(0,0,0,0,true,false,true,true,-1,40);f.Anchor=(g_anchor_left|g_anchor_bottom|g_anchor_right);m.AddControl(f);this.HtmlElement.ConfirmInnerControl=i;this.HtmlElement.ConfirmInnerDiv=g;r.style.borderTop="1px solid rgb(172,172,172)";r.style.backgroundColor="rgb(240,240,240)";this.HtmlElement.OkCancelDiv=r;var j=n+"OK";var q=this.protected_CreateDivElement(r,j);var k=CreateControlContainer(j);k.Bounds.SetParams(0,9,85,1000,false,true,true,false,66,21);k.Anchor=(g_anchor_top|g_anchor_right);m.AddControl(k);var b=new CDrawingButtonOK(this.m_oDrawing);b.Init(j,this);this.HtmlElement.OKButton=b;this.HtmlElement.OkButtonControl=k;b.m_oNormaBColor=new CColor(234,234,234,255);b.m_oNormaFColor=new CColor(172,172,172,255);b.m_oHoverBColor=new CColor(227,240,252,255);b.m_oHoverFColor=new CColor(126,180,234,255);b.m_oActiveBColor=new CColor(207,230,252,255);b.m_oActiveFColor=new CColor(86,157,229,255);b.m_oDisabledBColor=new CColor(239,239,239,255);b.m_oDisabledFColor=new CColor(217,217,217,255);var a=n+"Cancel";var e=this.protected_CreateDivElement(r,a);var h=CreateControlContainer(a);h.Bounds.SetParams(0,9,11,1000,false,true,true,false,66,21);h.Anchor=(g_anchor_top|g_anchor_right);m.AddControl(h);var p=new CDrawingButtonCancel(this.m_oDrawing);p.Init(a,this);this.HtmlElement.CancelButton=p;this.HtmlElement.CancelButtonControl=h;p.m_oNormaBColor=new CColor(234,234,234,255);p.m_oNormaFColor=new CColor(172,172,172,255);p.m_oHoverBColor=new CColor(227,240,252,255);p.m_oHoverFColor=new CColor(126,180,234,255);p.m_oActiveBColor=new CColor(207,230,252,255);p.m_oActiveFColor=new CColor(86,157,229,255);p.m_oDisabledBColor=new CColor(239,239,239,255);p.m_oDisabledFColor=new CColor(217,217,217,255)};CDrawingConfirmWindow.prototype.Update_Size=function(a){CDrawingConfirmWindow.superclass.Update_Size.call(this,a);if(this.HtmlElement.OKButton){this.HtmlElement.OKButton.Update_Size()}if(this.HtmlElement.CancelButton){this.HtmlElement.CancelButton.Update_Size()}};CDrawingConfirmWindow.prototype.Handle_Cancel=function(){this.Close()};CDrawingConfirmWindow.prototype.Handle_OK=function(){this.Close()};function CDrawingInfoWindow(){CDrawingInfoWindow.superclass.constructor.call(this);this.HtmlElement2={};this.m_oGameTree=null;this.m_nBottomOffset=10;this.m_nRowHeight=20;this.m_nLineSpacing=5;this.m_nLeftWidth=100}CommonExtend(CDrawingInfoWindow,CDrawingConfirmWindow);CDrawingInfoWindow.prototype.Init=function(d,k){CDrawingInfoWindow.superclass.Init.call(this,d);var C=window.g_oLocalization?window.g_oLocalization.gameRoom.window.gameInfo.caption:"Game info";var D=window.g_oLocalization?window.g_oLocalization.gameRoom.window.gameInfo.gameName:"Game name";var o=window.g_oLocalization?window.g_oLocalization.gameRoom.window.gameInfo.result:"Result";var B=window.g_oLocalization?window.g_oLocalization.gameRoom.window.gameInfo.rules:"Rules";var g=window.g_oLocalization?window.g_oLocalization.gameRoom.window.gameInfo.timeSettings:"Time settings";var a=window.g_oLocalization?window.g_oLocalization.gameRoom.window.gameInfo.black:"Black";var p=window.g_oLocalization?window.g_oLocalization.gameRoom.window.gameInfo.blackRank:"Black rank";var v=window.g_oLocalization?window.g_oLocalization.gameRoom.window.gameInfo.white:"White";var h=window.g_oLocalization?window.g_oLocalization.gameRoom.window.gameInfo.whiteRank:"White rank";var l=window.g_oLocalization?window.g_oLocalization.gameRoom.window.gameInfo.copyright:"Copyright";var c=window.g_oLocalization?window.g_oLocalization.gameRoom.window.gameInfo.date:"Date";var e=window.g_oLocalization?window.g_oLocalization.gameRoom.window.gameInfo.event:"Event";var m=window.g_oLocalization?window.g_oLocalization.gameRoom.window.gameInfo.round:"Round";var y=window.g_oLocalization?window.g_oLocalization.gameRoom.window.gameInfo.place:"Place";var x=window.g_oLocalization?window.g_oLocalization.gameRoom.window.gameInfo.annotator:"Annotator";var r=window.g_oLocalization?window.g_oLocalization.gameRoom.window.gameInfo.source:"Source";var q=window.g_oLocalization?window.g_oLocalization.gameRoom.window.gameInfo.transcriber:"Transcriber";var w=window.g_oLocalization?window.g_oLocalization.gameRoom.window.gameInfo.gameInfo:"Game info";this.protected_UpdateSizeAndPosition(k.Drawing);var b=k.GameTree;this.m_oGameTree=b;if(true!==b.Can_EditGameInfo()){this.HtmlElement.OKButton.Set_Enabled(false)}this.Set_Caption(C);var u=this.HtmlElement.ConfirmInnerControl;var z=this.HtmlElement.ConfirmInnerDiv;var t=this.HtmlElement.ConfirmInnerDiv.id;z.style.overflowX="hidden";z.style.overflowY="scroll";var j=this.m_nRowHeight;var A=10;var n=this.m_nLineSpacing;var f=this.m_nBottomOffset;var s=b.Can_EditGameInfo();this.HtmlElement2.GameName=this.private_CreateInfoElement(z,u,t,D,b.Get_GameName(),A,j,s);A+=j+n;this.HtmlElement2.Result=this.private_CreateInfoElement(z,u,t,o,b.Get_Result(),A,j,s);A+=j+n;this.HtmlElement2.Rules=this.private_CreateInfoElement(z,u,t,B,b.Get_Rules(),A,j,s);A+=j+n;this.HtmlElement2.TimeSettings=this.private_CreateInfoElement(z,u,t,g,b.Get_TimeLimit()+(b.Get_OverTime()===""?"":" + "+b.Get_OverTime()),A,j,s);A+=j+n;this.HtmlElement2.BlackName=this.private_CreateInfoElement(z,u,t,a,b.Get_BlackName(),A,j,s);A+=j+n;this.HtmlElement2.BlackRank=this.private_CreateInfoElement(z,u,t,p,b.Get_BlackRating(),A,j,s);A+=j+n;this.HtmlElement2.WhiteName=this.private_CreateInfoElement(z,u,t,v,b.Get_WhiteName(),A,j,s);A+=j+n;this.HtmlElement2.WhiteRank=this.private_CreateInfoElement(z,u,t,h,b.Get_WhiteRating(),A,j,s);A+=j+n;this.HtmlElement2.Copyright=this.private_CreateInfoElement(z,u,t,l,b.Get_Copyright(),A,j,s);A+=j+n;this.HtmlElement2.Date=this.private_CreateInfoElement(z,u,t,c,b.Get_DateTime(),A,j,s);A+=j+n;this.HtmlElement2.Event=this.private_CreateInfoElement(z,u,t,e,b.Get_GameEvent(),A,j,s);A+=j+n;this.HtmlElement2.Round=this.private_CreateInfoElement(z,u,t,m,b.Get_GameRound(),A,j,s);A+=j+n;this.HtmlElement2.Place=this.private_CreateInfoElement(z,u,t,y,b.Get_GamePlace(),A,j,s);A+=j+n;this.HtmlElement2.Annotator=this.private_CreateInfoElement(z,u,t,x,b.Get_GameAnnotator(),A,j,s);A+=j+n;this.HtmlElement2.Source=this.private_CreateInfoElement(z,u,t,r,b.Get_GameSource(),A,j,s);A+=j+n;this.HtmlElement2.Transcriber=this.private_CreateInfoElement(z,u,t,q,b.Get_GameTranscriber(),A,j,s);A+=j+n;this.HtmlElement2.GameInfo=this.private_CreateInfoAreaElement(z,u,t,w,b.Get_GameInfo(),A,j,s);A+=3*j;this.protected_CreateDivElement(z,t+"Bottom");var i=CreateControlContainer(t+"Bottom");i.Bounds.SetParams(0,A,1000,1000,true,true,false,false,0,f);i.Anchor=(g_anchor_left|g_anchor_top|g_anchor_right);u.AddControl(i)};CDrawingInfoWindow.prototype.Update_Size=function(b){CDrawingInfoWindow.superclass.Update_Size.call(this,b);if(this.HtmlElement.OKButton){this.HtmlElement.OKButton.Update_Size()}if(this.HtmlElement.CancelButton){this.HtmlElement.CancelButton.Update_Size()}var c=parseInt(this.HtmlElement.ConfirmInnerDiv.style.height)|0;var a=parseInt(this.HtmlElement2.GameInfo.style.top)|0;var d=c-this.m_nBottomOffset;if(d-a<3*this.m_nRowHeight){this.HtmlElement2.GameInfo.style.height=3*this.m_nRowHeight+"px"}else{this.HtmlElement2.GameInfo.style.height=(d-a)+"px"}};CDrawingInfoWindow.prototype.Handle_Cancel=function(){this.Close()};CDrawingInfoWindow.prototype.Handle_OK=function(){if(this.m_oGameTree){this.m_oGameTree.Set_GameName(this.HtmlElement2.GameName.value);this.m_oGameTree.Set_Result(this.HtmlElement2.Result.value);this.m_oGameTree.Set_Rules(this.HtmlElement2.Rules.value);this.m_oGameTree.Set_TimeLimit(this.HtmlElement2.TimeSettings.value);this.m_oGameTree.Set_Black(this.HtmlElement2.BlackName.value);this.m_oGameTree.Set_BlackRating(this.HtmlElement2.BlackRank.value);this.m_oGameTree.Set_White(this.HtmlElement2.WhiteName.value);this.m_oGameTree.Set_WhiteRating(this.HtmlElement2.WhiteRank.value);this.m_oGameTree.Set_Copyright(this.HtmlElement2.Copyright.value);this.m_oGameTree.Set_GameInfo(this.HtmlElement2.GameInfo.value);this.m_oGameTree.Set_DateTime(this.HtmlElement2.Date.value);this.m_oGameTree.Set_GameEvent(this.HtmlElement2.Event.value);this.m_oGameTree.Set_GameRound(this.HtmlElement2.Round.value);this.m_oGameTree.Set_GamePlace(this.HtmlElement2.Place.value);this.m_oGameTree.Set_GameAnnotator(this.HtmlElement2.Annotator.value);this.m_oGameTree.Set_GameSource(this.HtmlElement2.Source.value);this.m_oGameTree.Set_GameTranscriber(this.HtmlElement2.Transcriber.value)}this.Close()};CDrawingInfoWindow.prototype.private_CreateDivElement=function(c,b,d){var a=document.createElement("div");a.setAttribute("id",b);a.setAttribute("style","position:absolute;padding:0;margin:0;");a.setAttribute("oncontextmenu","return false;");a.style.fontFamily="Tahoma, Sans serif";a.style.fontSize=d*15/20+"px";a.style.lineHeight=d+"px";a.style.height=d+"px";c.appendChild(a);return a};CDrawingInfoWindow.prototype.private_CreateInputElement=function(d,c,b){var a=document.createElement("input");a.setAttribute("id",c);a.setAttribute("style","position:absolute;padding:0;margin:0;");a.setAttribute("oncontextmenu","return false;");a.setAttribute("type","text");a.style.fontFamily="Tahoma, Sans serif";a.style.fontSize="10pt";a.style.outline="none";a.style.border="1px solid rgb(169,169,169)";if(false===b){a.disabled="disabled"}d.appendChild(a);return a};CDrawingInfoWindow.prototype.private_CreateInfoElement=function(p,k,o,e,n,j,d,b){var f=this.m_nLeftWidth;var q=10;var a=10;a+=20;var g=o+e;var i=this.private_CreateDivElement(p,g,d);var h=CreateControlContainer(g);h.Bounds.SetParams(q,j,1000,1000,true,true,false,false,f,d);h.Anchor=(g_anchor_left|g_anchor_top);k.AddControl(h);Common.Set_InnerTextToElement(i,e);var c=g+"Value";var m=this.private_CreateInputElement(p,c,b);var l=CreateControlContainer(c);l.Bounds.SetParams(q+f,j+1,a,1000,true,true,true,false,-1,d-2);l.Anchor=(g_anchor_left|g_anchor_top|g_anchor_right);k.AddControl(l);m.value=n;return m};CDrawingInfoWindow.prototype.private_CreateInfoAreaElement=function(p,k,o,e,n,j,d,b){var f=this.m_nLeftWidth;var q=10;var a=10;a+=20;var g=o+e;var i=this.private_CreateDivElement(p,g,d);var h=CreateControlContainer(g);h.Bounds.SetParams(q,j,1000,1000,true,true,false,false,f,d);h.Anchor=(g_anchor_left|g_anchor_top);k.AddControl(h);Common.Set_InnerTextToElement(i,e);var c=g+"Value";var m=document.createElement("textarea");m.setAttribute("id",c);m.setAttribute("style","position:absolute;padding:0;margin:0;");m.setAttribute("oncontextmenu","return false;");m.style.fontFamily="Tahoma, Sans serif";m.style.fontSize="10pt";m.style.resize="none";m.style.outline="none";m.style.border="1px solid rgb(169,169,169)";m.style.height=3*d+"px";this.HtmlElement2.GameInfo=m;if(false===b){m.disabled="disabled"}p.appendChild(m);var l=CreateControlContainer(c);l.Bounds.SetParams(q+f,j+1,a,1000,true,true,true,false,-1,3*d);l.Anchor=(g_anchor_left|g_anchor_top|g_anchor_right);k.AddControl(l);m.value=n;return m};CDrawingInfoWindow.prototype.Show=function(b){CDrawingInfoWindow.superclass.Show.call(this,b);var a=this.m_oGameTree;this.HtmlElement2.GameName.value=a.Get_GameName();this.HtmlElement2.Result.value=a.Get_Result();this.HtmlElement2.Rules.value=a.Get_Rules();this.HtmlElement2.TimeSettings.value=a.Get_TimeLimit()+(a.Get_OverTime()===""?"":" + "+a.Get_OverTime());this.HtmlElement2.BlackName.value=a.Get_BlackName();this.HtmlElement2.BlackRank.value=a.Get_BlackRating();this.HtmlElement2.WhiteName.value=a.Get_WhiteName();this.HtmlElement2.WhiteRank.value=a.Get_WhiteRating();this.HtmlElement2.Copyright.value=a.Get_Copyright();this.HtmlElement2.Date.value=a.Get_DateTime();this.HtmlElement2.Event.value=a.Get_GameEvent();this.HtmlElement2.Round.value=a.Get_GameRound();this.HtmlElement2.Place.value=a.Get_GamePlace();this.HtmlElement2.Annotator.value=a.Get_GameAnnotator();this.HtmlElement2.Source.value=a.Get_GameSource();this.HtmlElement2.Transcriber.value=a.Get_GameTranscriber();this.HtmlElement2.GameInfo.value=a.Get_GameInfo()};function CDrawingErrorWindow(){CDrawingErrorWindow.superclass.constructor.call(this);this.m_nW=300;this.m_nH=100;this.m_oMainElement=null}CommonExtend(CDrawingErrorWindow,CDrawingWindow);CDrawingErrorWindow.prototype.Init=function(b,c){CDrawingErrorWindow.superclass.Init.call(this,b,false);this.protected_UpdateSizeAndPosition(c.Drawing);var a=c.ErrorText;var e=window.g_oLocalization?window.g_oLocalization.gameRoom.window.error.caption:"Error";this.Set_Caption(c.Caption?c.Caption:e);this.m_oGameTree=c.GameTree;this.m_oDrawing=c.Drawing;var h=this.HtmlElement.InnerDiv;var d=this.HtmlElement.InnerControl;var i=b+"E";var g=this.private_CreateDivElement(h,i,20);var f=CreateControlContainer(i);f.Bounds.SetParams(10,5,10,5,true,true,true,true,-1,-1);f.Anchor=(g_anchor_left|g_anchor_top|g_anchor_bottom|g_anchor_right);d.AddControl(f);this.m_oMainElement=g;this.Show(c)};CDrawingErrorWindow.prototype.Close=function(){if(this.m_oDrawing){this.m_oDrawing.Enable()}CDrawingInfoWindow.superclass.Close.call(this)};CDrawingErrorWindow.prototype.Show=function(a){CDrawingErrorWindow.superclass.Show.call(this,a);this.m_nW=a.W;this.m_nH=a.H;Common.Set_InnerTextToElement(this.m_oMainElement,a.ErrorText);if(this.m_oDrawing){this.m_oDrawing.Disable();this.protected_UpdateSizeAndPosition(this.m_oDrawing);this.Update_Size(true)}};CDrawingErrorWindow.prototype.private_CreateDivElement=function(c,b,d){var a=document.createElement("div");a.setAttribute("id",b);a.setAttribute("style","position:absolute;padding:0;margin:0;");a.setAttribute("oncontextmenu","return false;");a.style.fontFamily="Tahoma, Sans serif";a.style.fontSize=d*15/20+"px";a.style.lineHeight=d+"px";a.style.height=d+"px";c.appendChild(a);return a};CDrawingErrorWindow.prototype.Get_DefaultWindowSize=function(){return{W:this.m_nW,H:this.m_nH}};function CDrawingSettingsWindow(){CDrawingSettingsWindow.superclass.constructor.call(this);this.m_oGameTree=null;this.HtmlElement2={Theme:{TrueColor:null,SimpleColor:null,BookStyle:null,Dark:null},Sound:null,LoadUnfinishedSgf:null,NavigatorLabel:null,CycleThroughVariants:null,LoadShowVariants:null,ShowTarget:null}}CommonExtend(CDrawingSettingsWindow,CDrawingConfirmWindow);CDrawingSettingsWindow.prototype.Init=function(c,b){CDrawingSettingsWindow.superclass.Init.call(this,c,false);this.protected_UpdateSizeAndPosition(b.Drawing);this.m_oGameTree=b.GameTree;this.Set_Caption("Settings");var a=new CDrawingVerticalTabs();a.Init(this.HtmlElement.ConfirmInnerDiv.id,["Appearance","Color Scheme","Loading Settings"],0,150);this.private_CreateAppearancePage(a.Get_TabContent(0),b);this.private_CreateColorSchemePage(a.Get_TabContent(1),b);this.private_CreateLoadingSettingsPage(a.Get_TabContent(2),b)};CDrawingSettingsWindow.prototype.Get_DefaultWindowSize=function(){return{W:400,H:210}};CDrawingSettingsWindow.prototype.Show=function(a){CDrawingSettingsWindow.superclass.Show.call(this,a);this.HtmlElement2.CycleThroughVariants.checked=this.m_oGameTree.Is_CycleThroughVariants();this.HtmlElement2.Sound.checked=this.m_oGameTree.Is_SoundOn();this.HtmlElement2.NavigatorLabel.selectedIndex=this.m_oGameTree.Get_NavigatorLabel();this.private_CheckColorTheme();this.HtmlElement2.LoadUnfinishedSgf.checked=this.m_oGameTree.Is_LoadUnfinishedFilesOnLastNode();this.HtmlElement2.LoadShowVariants.selectedIndex=this.m_oGameTree.Get_LoadShowVariants()};CDrawingSettingsWindow.prototype.private_CreatePage=function(a){var b=document.createElement("div");a.appendChild(b);b.style.margin="0";b.style.padding="10px 20px";b.style.fontFamily="Tahoma, Arial, Verdana";b.style.fontSize="10px";b.style.color="#666";b.style.background="#fff";return b};CDrawingSettingsWindow.prototype.private_CreateAppearancePage=function(a,d){var c=this.private_CreatePage(a);var b=this.HtmlElement.ConfirmInnerDiv.id+"A";this.HtmlElement2.ShowTarget=this.private_CreateCheckBox(c,b+"T",this.m_oGameTree.Is_ShowTarget(),"Show target");this.HtmlElement2.CycleThroughVariants=this.private_CreateCheckBox(c,b+"C",this.m_oGameTree.Is_CycleThroughVariants(),"Cycle through variants");this.HtmlElement2.Sound=this.private_CreateCheckBox(c,b+"S",this.m_oGameTree.Is_SoundOn(),"Sound");this.HtmlElement2.NavigatorLabel=this.private_CreateSelect(c,b+"N",this.m_oGameTree.Get_NavigatorLabel(),["No labels","Move numbers","Move numbers current variant only","Move coordinates"],"Labels in navigator")};CDrawingSettingsWindow.prototype.private_CreateColorSchemePage=function(b,e){var d=this.private_CreatePage(b);var c=this.HtmlElement.ConfirmInnerDiv.id+"CS";var a="ThemeId";this.HtmlElement2.Theme.TrueColor=this.private_CreateRadioButton(d,c+"TC",a,"TrueColor");this.HtmlElement2.Theme.SimpleColor=this.private_CreateRadioButton(d,c+"SC",a,"SimpleColor");this.HtmlElement2.Theme.BookStyle=this.private_CreateRadioButton(d,c+"BS",a,"BookStyle");this.HtmlElement2.Theme.Dark=this.private_CreateRadioButton(d,c+"D",a,"Dark");this.private_CheckColorTheme()};CDrawingSettingsWindow.prototype.private_CreateLoadingSettingsPage=function(a,d){var c=this.private_CreatePage(a);var b=this.HtmlElement.ConfirmInnerDiv.id+"LS";this.HtmlElement2.LoadUnfinishedSgf=this.private_CreateCheckBox(c,b+"U",this.m_oGameTree.Is_LoadUnfinishedFilesOnLastNode(),"Load unfinished files on the last node");this.HtmlElement2.LoadShowVariants=this.private_CreateSelect(c,b+"V",this.m_oGameTree.Get_LoadShowVariants(),["Don't show variants","Show variations of current node (siblings)","Show variations of successor node (children)","Load option from file"],"Show variants")};CDrawingSettingsWindow.prototype.Handle_OK=function(){var b=EColorScheme.TrueColor;if(this.HtmlElement2.Theme.SimpleColor.checked){b=EColorScheme.SimpleColor}else{if(this.HtmlElement2.Theme.BookStyle.checked){b=EColorScheme.BookStyle}else{if(this.HtmlElement2.Theme.Dark.checked){b=EColorScheme.Dark}else{b=EColorScheme.TrueColor}}}var c=g_oGlobalSettings.Set_ColorScheme(b);this.m_oGameTree.Toggle_Sound(this.HtmlElement2.Sound.checked?true:false,false);this.m_oGameTree.Set_ShowTarget(this.HtmlElement2.ShowTarget.checked?true:false);this.m_oGameTree.Set_LoadUnfinishedFilesOnLastNode(this.HtmlElement2.LoadUnfinishedSgf.checked?true:false);this.m_oGameTree.Set_NavigatorLabel(this.HtmlElement2.NavigatorLabel.selectedIndex);this.m_oGameTree.Set_CycleThroughVariants(this.HtmlElement2.CycleThroughVariants.checked?true:false);this.m_oGameTree.Set_LoadShowVariants(this.HtmlElement2.LoadShowVariants.selectedIndex);var a=this.m_oGameTree.Get_DrawingBoard();var d=this.m_oGameTree.Get_DrawingNavigator();if(a&&true===c.Board){a.Update_Size(true)}if(d&&true===c.Navigator){d.Update_All()}this.Close()};CDrawingSettingsWindow.prototype.private_CreateRadioButton=function(f,e,d,b){var g=document.createElement("div");g.style.paddingLeft="10px";g.style.paddingBottom="5px";f.appendChild(g);var a=document.createElement("input");a.type="radio";a.name=d;a.value=b;a.setAttribute("id",e);g.appendChild(a);var c=document.createElement("span");c.setAttribute("oncontextmenu","return false;");c.style.fontFamily="Tahoma, Sans serif";Common.Set_InnerTextToElement(c,b);c.style.fontFamily="Tahoma, Sans serif";c.style.fontSize="12pt";c.style.height="15px";c.style.lineHeight="15px";c.style.cursor="default";g.appendChild(c);c.addEventListener("click",function(){a.checked=true},false);return a};CDrawingSettingsWindow.prototype.private_CreateCheckBox=function(e,d,g,a){var f=document.createElement("div");f.style.paddingLeft="10px";f.style.paddingBottom="5px";e.appendChild(f);var b=document.createElement("input");b.type="checkbox";b.checked=g;b.setAttribute("id",d);f.appendChild(b);var c=document.createElement("span");c.setAttribute("oncontextmenu","return false;");c.style.fontFamily="Tahoma, Sans serif";Common.Set_InnerTextToElement(c,a);c.style.fontFamily="Tahoma, Sans serif";c.style.fontSize="12pt";c.style.height="15px";c.style.lineHeight="15px";c.style.cursor="default";f.appendChild(c);c.addEventListener("click",function(){b.checked=!b.checked},false);return b};CDrawingSettingsWindow.prototype.private_CreateSelect=function(h,d,f,k,j){var g=document.createElement("div");g.style.paddingLeft="10px";g.style.paddingBottom="5px";g.style.fontFamily="Tahoma, Sans serif";g.style.fontSize="9pt";g.style.height="12px";g.style.lineHeight="12px";h.appendChild(g);var e=document.createElement("div");Common.Set_InnerTextToElement(e,j);e.style.paddingBottom="5px";g.appendChild(e);var c=document.createElement("select");c.style.width="170px";for(var b=0,a=k.length;b<a;b++){var i=document.createElement("option");i.value=k[b];Common.Set_InnerTextToElement(i,k[b]);c.appendChild(i)}c.selectedIndex=f;g.appendChild(c);return c};CDrawingSettingsWindow.prototype.private_CheckColorTheme=function(){var a=g_oGlobalSettings.m_oBoardPr.oBoardColor.r;if(231===a){if(g_oGlobalSettings.m_oBoardPr.bTrueColorBoard){this.HtmlElement2.Theme.TrueColor.checked=true}else{this.HtmlElement2.Theme.SimpleColor.checked=true}}else{if(255===a){this.HtmlElement2.Theme.BookStyle.checked=true}else{if(30===a){this.HtmlElement2.Theme.Dark.checked=true}else{this.HtmlElement2.Theme.TrueColor.checked=true}}}};function CDrawingCountColorsWindow(){CDrawingCountColorsWindow.superclass.constructor.call(this);this.m_nLeftWidth=100}CommonExtend(CDrawingCountColorsWindow,CDrawingWindow);CDrawingCountColorsWindow.prototype.Init=function(d,i){CDrawingCountColorsWindow.superclass.Init.call(this,d,false);var B=window.g_oLocalization?window.g_oLocalization.gameRoom.window.colorsCounter.caption:"Counter of colors";var x=window.g_oLocalization?window.g_oLocalization.gameRoom.window.colorsCounter.red:"Red";var k=window.g_oLocalization?window.g_oLocalization.gameRoom.window.colorsCounter.blue:"Blue";var A=window.g_oLocalization?window.g_oLocalization.gameRoom.window.colorsCounter.green:"Green";var b=window.g_oLocalization?window.g_oLocalization.gameRoom.window.colorsCounter.gray:"Gray";this.m_oGameTree=i.GameTree;this.m_oDrawingBoard=i.DrawingBoard;this.protected_UpdateSizeAndPosition(i.Drawing);this.Set_Caption(B);var y=this.HtmlElement.InnerDiv;var w=this.HtmlElement.InnerControl;var v=this.HtmlElement.InnerDiv.id;y.style.overflowX="hidden";y.style.overflowY="hidden";var j=20;var z=10;var n=5;var f=10;var m=i.DrawingBoard.m_oColorMarks;var r=[0,0,0,0],t=[0,0,0,0],l=[0,0,0,0],c=[0,0,0,0];var h=false,s=false,u=false,o=false;for(var e in m){var q=m[e];var a=-1;if(0!==q.r&&0!==q.g&&0!==q.b){o=true;a=3}else{if(0!==q.r){h=true;a=0}else{if(0!==q.g){s=true;a=1}else{if(0!==q.b){u=true;a=2}}}}var p=0;if(q.a<=50){p=0}else{if(q.a<=100){p=1}else{if(q.a<=150){p=2}else{p=3}}}switch(a){case 0:r[p]++;break;case 1:t[p]++;break;case 2:l[p]++;break;case 3:c[p]++;break}}this.Red=this.private_CreateInfoElement(y,w,v,x,"4 x "+r[3]+"+ 3 x "+r[2]+" + 2 x "+r[1]+" + 1 x "+r[0]+" ="+(4*r[3]+3*r[2]+2*r[1]+r[0]),z,j);z+=j+n;this.Green=this.private_CreateInfoElement(y,w,v,A,"4 x "+t[3]+"+ 3 x "+t[2]+" + 2 x "+t[1]+" + 1 x "+t[0]+" ="+(4*t[3]+3*t[2]+2*t[1]+t[0]),z,j);z+=j+n;this.Blue=this.private_CreateInfoElement(y,w,v,k,"4 x "+l[3]+"+ 3 x "+l[2]+" + 2 x "+l[1]+" + 1 x "+l[0]+" ="+(4*l[3]+3*l[2]+2*l[1]+l[0]),z,j);z+=j+n;this.Gray=this.private_CreateInfoElement(y,w,v,b,"4 x "+c[3]+"+ 3 x "+c[2]+" + 2 x "+c[1]+" + 1 x "+c[0]+" ="+(4*c[3]+3*c[2]+2*c[1]+c[0]),z,j);z+=j+n;this.protected_CreateDivElement(y,v+"Bottom");var g=CreateControlContainer(v+"Bottom");g.Bounds.SetParams(0,z,1000,1000,true,true,false,false,0,f);g.Anchor=(g_anchor_left|g_anchor_top|g_anchor_right);w.AddControl(g)};CDrawingCountColorsWindow.prototype.private_CreateDivElement=function(c,b,d){var a=document.createElement("div");a.setAttribute("id",b);a.setAttribute("style","position:absolute;padding:0;margin:0;");a.setAttribute("oncontextmenu","return false;");a.style.fontFamily="Tahoma, Sans serif";a.style.fontSize=d*15/20+"px";a.style.lineHeight=d+"px";a.style.height=d+"px";c.appendChild(a);return a};CDrawingCountColorsWindow.prototype.private_CreateInputElement=function(c,b){var a=document.createElement("input");a.setAttribute("id",b);a.setAttribute("style","position:absolute;padding:0;margin:0;");a.setAttribute("oncontextmenu","return false;");a.setAttribute("type","text");a.style.fontFamily="Tahoma, Sans serif";a.style.fontSize="10pt";a.style.outline="none";a.disabled="disabled";c.appendChild(a);return a};CDrawingCountColorsWindow.prototype.private_CreateInfoElement=function(p,k,o,e,n,j,d,b){var f=this.m_nLeftWidth;var q=10;var a=10;a+=20;var g=o+e;var i=this.private_CreateDivElement(p,g,d);var h=CreateControlContainer(g);h.Bounds.SetParams(q,j,1000,1000,true,true,false,false,f,d);h.Anchor=(g_anchor_left|g_anchor_top);k.AddControl(h);Common.Set_InnerTextToElement(i,e);var c=g+"Value";var m=this.private_CreateInputElement(p,c,b);var l=CreateControlContainer(c);l.Bounds.SetParams(q+f,j+1,a,1000,true,true,true,false,-1,d-2);l.Anchor=(g_anchor_left|g_anchor_top|g_anchor_right);k.AddControl(l);m.value=n;return m};CDrawingCountColorsWindow.prototype.Show=function(a){CDrawingCountColorsWindow.superclass.Show.call(this,a);this.m_oGameTree=a.GameTree;this.m_oDrawingBoard=a.DrawingBoard;this.Update()};CDrawingCountColorsWindow.prototype.Update=function(g){if(!this.Is_Visible()){return}if(!this.m_oDrawingBoard){return}var i=this.m_oDrawingBoard.m_oColorMarks;var h=[0,0,0,0],a=[0,0,0,0],c=[0,0,0,0],e=[0,0,0,0];var l=false,d=false,j=false,k=false;for(var n in i){var b=i[n];var m=-1;if(0!==b.r&&0!==b.g&&0!==b.b){k=true;m=3}else{if(0!==b.r){l=true;m=0}else{if(0!==b.g){d=true;m=1}else{if(0!==b.b){j=true;m=2}}}}var f=0;if(b.a<=50){f=0}else{if(b.a<=100){f=1}else{if(b.a<=150){f=2}else{f=3}}}switch(m){case 0:h[f]++;break;case 1:a[f]++;break;case 2:c[f]++;break;case 3:e[f]++;break}}this.Red.value="4 x "+h[3]+"+ 3 x "+h[2]+" + 2 x "+h[1]+" + 1 x "+h[0]+" ="+(4*h[3]+3*h[2]+2*h[1]+h[0]);this.Green.value="4 x "+a[3]+"+ 3 x "+a[2]+" + 2 x "+a[1]+" + 1 x "+a[0]+" ="+(4*a[3]+3*a[2]+2*a[1]+a[0]);this.Blue.value="4 x "+c[3]+"+ 3 x "+c[2]+" + 2 x "+c[1]+" + 1 x "+c[0]+" ="+(4*c[3]+3*c[2]+2*c[1]+c[0]);this.Gray.value="4 x "+e[3]+"+ 3 x "+e[2]+" + 2 x "+e[1]+" + 1 x "+e[0]+" ="+(4*e[3]+3*e[2]+2*e[1]+e[0])};CDrawingCountColorsWindow.prototype.Get_DefaultWindowSize=function(){return{W:410,H:160}};function CDrawingGifWriterWindow(){CDrawingGifWriterWindow.superclass.constructor.call(this);this.m_oProgressSliderElement=null;this.m_oProgressValueElement=null;this.m_oDrawing=null;this.m_oGameTree=null}CommonExtend(CDrawingGifWriterWindow,CDrawingWindow);CDrawingGifWriterWindow.prototype.Init=function(c,d){CDrawingGifWriterWindow.superclass.Init.call(this,c,false);this.protected_UpdateSizeAndPosition(d.Drawing);var n=window.g_oLocalization?window.g_oLocalization.gameRoom.window.creatingGIF.caption:"Creating Gif file...";this.Set_Caption(n);if(d.GameTree){this.m_oGameTree=d.GameTree}var o=this.HtmlElement.InnerDiv;var k=this.HtmlElement.InnerControl;var m=this.HtmlElement.InnerDiv.id;var g=m+"PB";var i=this.protected_CreateDivElement(o,g);var l=CreateControlContainer(g);l.Bounds.SetParams(6,30,8,8,true,true,true,true,-1,-1);l.Anchor=(g_anchor_top|g_anchor_left|g_anchor_bottom|g_anchor_right);k.AddControl(l);i.style.border="1px solid rgb(221,221,221)";i.style.backgroundColor="rgb(140, 140, 140)";var h=m+"P";var b=this.protected_CreateDivElement(o,h);var j=CreateControlContainer(h);j.Bounds.SetParams(7,31,0,7,true,true,false,true,10,-1);j.Anchor=(g_anchor_top|g_anchor_left|g_anchor_bottom);k.AddControl(j);b.style.backgroundColor="rgb(54, 101, 179)";this.m_oProgressSliderElement=b;var a=m+"PV";var f=this.protected_CreateDivElement(o,a);var e=CreateControlContainer(a);e.Bounds.SetParams(0,7,1000,32,false,false,false,true,-1,-1);e.Anchor=(g_anchor_top|g_anchor_left|g_anchor_bottom);k.AddControl(e);f.style.fontFamily="Tahoma, Sans serif";f.style.fontSize=20*15/20+"px";f.style.lineHeight=20+"px";f.style.height=20+"px";f.style.color="rgb(0, 0, 0)";f.style.textAlign="center";this.m_oProgressValueElement=f};CDrawingGifWriterWindow.prototype.Get_DefaultWindowSize=function(){return{W:240,H:100}};CDrawingGifWriterWindow.prototype.On_Progress=function(c){var a=214;this.m_oProgressSliderElement.style.width=(c/100*a)+"px";var b=(c*100|0)/100;Common.Set_InnerTextToElement(this.m_oProgressValueElement,b+"%")};CDrawingGifWriterWindow.prototype.On_Start=function(){this.On_Progress(0);if(this.m_oDrawing){this.m_oDrawing.Disable()}};CDrawingGifWriterWindow.prototype.On_End=function(){this.On_Progress(100);var b=this;function a(){b.Close(true)}setTimeout(a,300)};CDrawingGifWriterWindow.prototype.Close=function(a){if(true!==a){if(this.m_oGameTree){this.m_oGameTree.Abort_DownloadGid()}}if(this.m_oDrawing){this.m_oDrawing.Enable()}CDrawingGifWriterWindow.superclass.Close.apply(this)};function CDrawingAboutWindow(){CDrawingAboutWindow.superclass.constructor.call(this);this.m_oDrawingBoard=null}CommonExtend(CDrawingAboutWindow,CDrawingWindow);CDrawingAboutWindow.prototype.Init=function(c,b){CDrawingGifWriterWindow.superclass.Init.call(this,c,true);this.protected_UpdateSizeAndPosition(b.Drawing);this.Set_Caption("About");this.m_oGameTree=b.GameTree;var a=new CDrawingVerticalTabs();a.Init(this.HtmlElement.InnerDiv.id,["Web Renju Board","Keyboard Shortcuts"],0);this.private_InitAboutPage(a.Get_TabContent(0));this.private_InitKeyBoardShortcutsPage(a.Get_TabContent(1),b)};CDrawingAboutWindow.prototype.Get_DefaultWindowSize=function(){if(this.m_oDrawing){var c=this.m_oDrawing.Get_Width();var d=this.m_oDrawing.Get_Height();var a=Math.max(100,Math.min(700,c*0.9));var b=Math.max(100,Math.min(600,d*0.9));return{W:a,H:b}}return null};CDrawingAboutWindow.prototype.private_InitAboutPage=function(b){var c=document.createElement("div");b.appendChild(c);b.style.overflowX="hidden";b.style.overflowY="scroll";c.style.margin="0";c.style.padding="10px 20px";c.style.fontFamily="Tahoma, Arial, Verdana";c.style.fontSize="12px";c.style.color="#666";c.style.background="#fff";var f=document.createElement("div");f.style.width="10px";f.style.height="100px";f.style["float"]="left";c.appendChild(f);var e=document.createElement("h1");c.appendChild(e);Common.Set_InnerTextToElement(e,"Web Renju Board");var a=document.createElement("div");c.appendChild(a);Common.Set_InnerTextToElement(a,"Version "+RenjuBoardApi.Get_Version());var d=document.createElement("div");d.style.paddingTop="40px";c.appendChild(d);Common.Set_InnerTextToElement(d,"Visit our GitHub project for feedback and issue reports:");d=document.createElement("a");d.target="_blank";d.href="https://github.com/starpentagon/web_renju_board";c.appendChild(d);Common.Set_InnerTextToElement(d,"https://github.com/starpentagon/web_renju_board");d=document.createElement("div");d.style.paddingTop="20px";c.appendChild(d);Common.Set_InnerTextToElement(d,"Our site:");d=document.createElement("a");d.target="_blank";d.href="http://quinstella.net/";c.appendChild(d);Common.Set_InnerTextToElement(d,"http://quinstella.net/");var d=document.createElement("div");d.style.paddingTop="40px";c.appendChild(d);Common.Set_InnerTextToElement(d,"Web Renju Board is developed by modifying the Web Go/Baduk Board and GoProject libraries:");d=document.createElement("a");d.target="_blank";d.href="https://github.com/IlyaKirillov/GoProject";c.appendChild(d);Common.Set_InnerTextToElement(d,"https://github.com/IlyaKirillov/GoProject");var d=document.createElement("div");d.style.paddingTop="20px";c.appendChild(d);Common.Set_InnerTextToElement(d,"Web Go/Baduk Board authors' site:");d=document.createElement("a");d.target="_blank";d.href="http://webgoboard.com/";c.appendChild(d);Common.Set_InnerTextToElement(d,"http://webgoboard.com/");d=document.createElement("div");d.style.paddingTop="30px";c.appendChild(d);Common.Set_InnerTextToElement(d,"Web Go/Baduk Board: © Ilya Kirillov, 2014-2016. All rights reserved.");d=document.createElement("div");d.style.paddingTop="10px";c.appendChild(d);Common.Set_InnerTextToElement(d,"Web Renju Board: © Koichi Nabetani, 2017. All rights reserved.")};CDrawingAboutWindow.prototype.private_InitKeyBoardShortcutsPage=function(c,g){var b=c;b.style.overflowX="hidden";b.style.overflowY="scroll";var d=document.createElement("div");b.appendChild(d);d.style.margin="0";d.style.padding="10px 20px";d.style.fontFamily="Tahoma, Arial, Verdana";d.style.fontSize="12px";d.style.color="#666";d.style.background="#fff";var f=document.createElement("h1");d.appendChild(f);Common.Set_InnerTextToElement(f,"Keyboard Shortcuts");f.style.fontSize="16px";f.style.fontWeight="bold";var a=document.createElement("table");d.appendChild(a);a.style.margin="20px 0";a.style.width="100%";var e=document.createElement("tbody");a.appendChild(e);this.m_oDrawingBoard=null;if(g.GameTree){this.m_oDrawingBoard=g.GameTree.Get_DrawingBoard()}this.private_AppendTableHeading1(e,"Working with Files");this.private_AppendTableCommonString(e,{CtrlKey:true,KeyCode:79,ShiftKey:false},"Open Sgf","Ctrl+O","Open the Sgf file from disk. (Not in color mode, see below)");this.private_AppendTableCommonString(e,{CtrlKey:true,KeyCode:86,ShiftKey:false},"Open Sgf","Ctrl+V","Open the Sgf data from clipboard. (Not in color mode, see below)");this.private_AppendTableCommonString(e,{CtrlKey:true,KeyCode:78,ShiftKey:true},"Create new","Ctrl+Shift+N","Create new empty board. (not in color mode see below)");this.private_AppendTableCommonString(e,{CtrlKey:true,KeyCode:83,ShiftKey:false},"Save Sgf","Ctrl+S","Save Sgf file.");this.private_AppendTableCommonString(e,{CtrlKey:true,KeyCode:72,ShiftKey:false},"Save png shot","Ctrl+H","Save board shot in png format.");this.private_AppendTableCommonString(e,{CtrlKey:true,KeyCode:72,ShiftKey:true},"Save gif shot","Ctrl+Shift+H","Save board shot in gif format.");this.private_AppendTableCommonString(e,{CtrlKey:true,KeyCode:73,ShiftKey:false},"Save multipage gif file.","Ctrl+I","Save gif file for current variant.");this.private_AppendTableCommonString(e,{CtrlKey:true,KeyCode:73,ShiftKey:true},"Save multipage gif file.","Ctrl+Shift+I","Save gif file for all branches with comment RIGHT (for problem mode).");this.private_AppendTableHeading1(e,"Navigation");this.private_AppendTableCommonString(e,{CtrlKey:false,KeyCode:39,ShiftKey:false},"Next node","Right arrow","Jump to next node.");this.private_AppendTableCommonString(e,{CtrlKey:true,KeyCode:39,ShiftKey:false},"Next 5 node","Ctrl+Right arrow","Jump over 5 nodes.");this.private_AppendTableCommonString(e,{CtrlKey:true,KeyCode:39,ShiftKey:true},"End of the variant","Ctrl+Shift+Right arrow","Jump to the end of the current variant.");this.private_AppendTableCommonString(e,{CtrlKey:false,KeyCode:37,ShiftKey:false},"Previous node","Left arrow","Jump to previous node.");this.private_AppendTableCommonString(e,{CtrlKey:true,KeyCode:37,ShiftKey:false},"Previous 5 node","Shift+Left arrow","Jump back over 5 nodes.");this.private_AppendTableCommonString(e,{CtrlKey:true,KeyCode:37,ShiftKey:true},"Start of the file","Ctrl+Shift+Right arrow","Jump to the start of the file.");this.private_AppendTableCommonString(e,{CtrlKey:false,KeyCode:38,ShiftKey:false},"Previous variant","Up arrow","Jump to previous variant.");this.private_AppendTableCommonString(e,{CtrlKey:false,KeyCode:40,ShiftKey:false},"Next variant","Down arrow","Jump to next variant.");this.private_AppendTableCommonString(e,{CtrlKey:true,KeyCode:36,ShiftKey:true},"Start node","Ctrl+Shift+Home",'Jump to the start node of the file. This node can be different from the first node. See "load unfinished files" checkbox in settings.');this.private_AppendTableHeading2(e,{CtrlKey:false,KeyCode:112,ShiftKey:false},"Play mode","F1");this.private_AppendTableCommonString(e,{},"Add move","Left mouse click","Set sequentially stones.");this.private_AppendTableCommonString(e,{},"Add alternative move","Right mouse click","Create new brunch and add alternative move.");this.private_AppendTableCommonString(e,{},"Go to the point","Shift+Left mouse click onto a board position","Teleports you to the moment of the game forth or back, when the stone on this position has been played.");this.private_AppendTableCommonString(e,{},"Change move order","Ctrl+Shift+Left mouse click","When sequentially stones are entered: changes the colour of the next stone to be set. What stone will appear on the board is shown by the tools field (useful e.g. after a problem has been set up).");this.private_AppendTableCommonString(e,{},"Add comment with coordinates","Ctrl+Left mouse click","Add comment with coordinates.");this.private_AppendTableHeading2(e,{CtrlKey:false,KeyCode:114,ShiftKey:false},"Set up a board position","F3");this.private_AppendTableCommonString(e,{},"Add black stone or remove stone","Left mouse click","Add black stone or remove stone.");this.private_AppendTableCommonString(e,{},"Add white stone or remove stone","Shift+Left mouse click","Add white stone or remove stone.");this.private_AppendTableHeading3(e,{CtrlKey:false,KeyCode:115,ShiftKey:false},"Triangles","F4","Add triangles.");this.private_AppendTableHeading3(e,{CtrlKey:false,KeyCode:116,ShiftKey:false},"Squares","F5","Add squares.");this.private_AppendTableHeading3(e,{CtrlKey:false,KeyCode:117,ShiftKey:false},"Circles","F6","Add circles.");this.private_AppendTableHeading3(e,{CtrlKey:false,KeyCode:118,ShiftKey:false},"X mark","F7",'Add "X" mark.');this.private_AppendTableHeading2(e,{CtrlKey:false,KeyCode:119,ShiftKey:false},"Text label","F8");this.private_AppendTableCommonString(e,{},"Letter","Left mouse click","Add letter.");this.private_AppendTableCommonString(e,{},"Text","Shift+Left mouse click","Add text entered by the user.");this.private_AppendTableHeading2(e,{CtrlKey:false,KeyCode:120,ShiftKey:false},"Numeric label","F9");this.private_AppendTableCommonString(e,{},"Number","Left mouse click","Add the smallest positive number.");this.private_AppendTableCommonString(e,{},"Move number","Shift+Left mouse click","Add number of the first move which was played here.");this.private_AppendTableHeading2(e,{CtrlKey:false,KeyCode:121,ShiftKey:false},"Color mode","F10");this.private_AppendTableCommonString(e,{},"Blue region","Left mouse click","Add blue region.");this.private_AppendTableCommonString(e,{},"Green region","Shift+Left mouse click","Add green region.");this.private_AppendTableCommonString(e,{},"Red region","Ctrl+Left mouse click","Add red region.");this.private_AppendTableCommonString(e,{},"Gray region","Ctrl+Shift+Left mouse click","Add gray region.");this.private_AppendTableCommonString(e,{},"Clear region","Right mouse click","Clear region.");this.private_AppendTableCommonString(e,{CtrlKey:true,KeyCode:67,ShiftKey:false},"Continue","Ctrl+C","Copy all colors from previous node.");this.private_AppendTableCommonString(e,{CtrlKey:true,KeyCode:79,ShiftKey:false},"Count colors","Ctrl+O","Count all colors with depth.");this.private_AppendTableCommonString(e,{CtrlKey:true,KeyCode:82,ShiftKey:false},"Clear colors","Ctrl+R","Clear all colors in the current node.");this.private_AppendTableHeading1(e,"Miscellaneous");this.private_AppendTableCommonString(e,{CtrlKey:false,KeyCode:8,ShiftKey:false},"Remove node","Backspace/Delete","Deletes the current node and all of the following brunches.");this.private_AppendTableCommonString(e,{CtrlKey:false,KeyCode:86,ShiftKey:true},"View mode change of the next move","Shift+V","There are 3 mods: Show all next move variants, show all alternative variants of the current move, show nothing.");this.private_AppendTableCommonString(e,{CtrlKey:true,KeyCode:82,ShiftKey:false},"Show/Hide coordinates","Ctrl+R","Show/Hide coordinates. (Not in color mode, see above)");this.private_AppendTableCommonString(e,{CtrlKey:true,KeyCode:77,ShiftKey:true},"Make the current variant mainly","Ctrl+Shift+M","Make the current variant mainly by uplifting it to the root of the game tree.");this.private_AppendTableCommonString(e,{CtrlKey:true,KeyCode:85,ShiftKey:true},"Lift up the current variant","Ctrl+Shift+U","Lift up the current variant.");this.private_AppendTableCommonString(e,{CtrlKey:true,KeyCode:68,ShiftKey:true},"Lower down the current variant","Ctrl+Shift+D","Lower down the current variant.");this.private_AppendTableCommonString(e,{CtrlKey:true,KeyCode:86,ShiftKey:true},"Setting up view port","Ctrl+Shift+V","Setting up visible part of the board.");this.private_AppendTableCommonString(e,{CtrlKey:true,KeyCode:68,ShiftKey:false},"Ascii Diagram","Ctrl+D","Make ascii diagram by current position.")};CDrawingAboutWindow.prototype.private_AppendTR=function(b){var a=document.createElement("tr");b.appendChild(a);a.style.borderLeft="0";a.style.borderRight="0";a.style.borderBottom="solid 1px #E4E4E4";a.style.borderCollapse="collapse";a.style.padding="8px";a.style.fontSize="12px";a.style.textAlign="left";a.style.cursor="default";return a};CDrawingAboutWindow.prototype.private_AppendTD=function(b,a){var c=document.createElement("td");b.appendChild(c);Common.Set_InnerTextToElement(c,a);c.style.borderLeft="0";c.style.borderRight="0";c.style.borderBottom="solid 1px #E4E4E4";c.style.borderCollapse="collapse";c.style.padding="8px";c.style.fontSize="12px";c.style.textAlign="left";c.style.cursor="default";return c};CDrawingAboutWindow.prototype.private_SetEventListener=function(b,c){var a=this.m_oDrawingBoard;if(a&&c.KeyCode){b.title="Click to do it";b.style.cursor="pointer";b.style.textDecoration="underline";b.addEventListener("click",function(){a.private_HandleKeyDown(c)},false)}};CDrawingAboutWindow.prototype.private_AppendTableHeading1=function(c,a){var b=this.private_AppendTR(c);var d=this.private_AppendTD(b,a);d.colSpan="3";d.style.fontSize="14px";d.style.fontWeight="bold";d.style.paddingTop="20px"};CDrawingAboutWindow.prototype.private_AppendTableHeading2=function(c,b,g,f){var a=this.private_AppendTR(c);var e=this.private_AppendTD(a,g);e.style.fontWeight="bold";var d=this.private_AppendTD(a,f);this.private_SetEventListener(d,b);d.colSpan="2"};CDrawingAboutWindow.prototype.private_AppendTableHeading3=function(c,b,g,f,e){var a=this.private_AppendTR(c);this.private_AppendTD(a,g).style.fontWeight="bold";var d=this.private_AppendTD(a,f);this.private_SetEventListener(d,b);this.private_AppendTD(a,e)};CDrawingAboutWindow.prototype.private_AppendTableCommonString=function(c,b,g,f,e){var a=this.private_AppendTR(c);this.private_AppendTD(a,g).style.width="35%";var d=this.private_AppendTD(a,f);d.style.width="15%";this.private_SetEventListener(d,b);this.private_AppendTD(a,e).style.width="50%"};function CDrawingDiagramSLWindow(){CDrawingDiagramSLWindow.superclass.constructor.call(this);this.m_oTextArea=null}CommonExtend(CDrawingDiagramSLWindow,CDrawingWindow);CDrawingDiagramSLWindow.prototype.Init=function(f,e){CDrawingDiagramSLWindow.superclass.Init.call(this,f,true);var a=window.g_oLocalization?window.g_oLocalization.gameRoom.window.asciiDiagram.caption:"ASCII diagram";this.Set_Caption(a);var b=this.HtmlElement.InnerDiv;var c=this.HtmlElement.InnerControl;var d=this.HtmlElement.InnerDiv.id;this.m_oGameTree=e.GameTree;this.private_CreateInfoAreaElement(b,c,d);this.private_FillTextArea(e.GameTree);this.m_oTextArea.select()};CDrawingDiagramSLWindow.prototype.Show=function(a){CDrawingDiagramSLWindow.superclass.Show.call(this,a);this.private_FillTextArea(a.GameTree);this.m_oTextArea.select()};CDrawingDiagramSLWindow.prototype.private_CreateInfoAreaElement=function(a,b,d){var c=document.createElement("textarea");var f=d+"TA";c.setAttribute("id",f);c.setAttribute("style","position:absolute;padding:0;margin:0;");c.setAttribute("oncontextmenu","return false;");c.style.fontFamily="Courier New, monospacef";c.style.fontSize="10pt";c.style.resize="none";c.style.outline="none";c.style.border="1px solid rgb(169,169,169)";c.style.height="100%";c.style.width="100%";this.m_oTextArea=c;a.appendChild(c);var e=CreateControlContainer(f);e.Bounds.SetParams(0,0,1000,1000,false,false,false,false,-1,-1);e.Anchor=(g_anchor_left|g_anchor_top|g_anchor_right|g_anchor_bottom);b.AddControl(e);return c};CDrawingDiagramSLWindow.prototype.private_FillTextArea=function(J){this.m_oTextArea.value="";if(undefined===J){return}var A=J.Get_DrawingBoard();var K=J.Get_Board();if(!A||!K){return}var c="";var g=K.Get_Size().X;var f=K.Get_Size().Y;var s=A.Get_ViewPort();var D=s.X0;var u=s.Y0;var C=s.X1;var t=s.Y1;var k=(0==D?true:false);var i=(g-1==C?true:false);var d=(0==u?true:false);var B=(f-1==t?true:false);var w=[];for(var j=u;j<t;j++){for(var l=D;l<C;l++){var b=A.Get_Mark(l+1,j+1);var z=(null!=b?b.Get_Type():EDrawingMark.Lm);var n=(null!=b?b.Get_Text():"");if(z==EDrawingMark.Tx&&Common_IsInt(n)){var p=parseInt(n);var H={Number:p,Value:K.Get(l+1,j+1)};if(BOARD_EMPTY!=H.Value){w.push(H)}}}}var y=true;var G=A.Get_Rulers();var I=-1;if(w.length>0){var F=-1,v=BOARD_EMPTY;var q=-1;for(var h=0,r=w.length;h<r;h++){var H=w[h];if(-1==F||H.Number<F){F=H.Number;v=H.Value}if(-1==q||H.Number>q){q=H.Number}}if(q-F<10){var a=true;for(var h=0,r=w.length;h<r;h++){var H=w[h];var o=(H.Number-F)%2;if((0==o&&v!=H.Value)||(1==o&&v==H.Value)){a=false;break}}if(true===a){I=F;if(BOARD_BLACK===v){y=true}else{y=false}}}}var m=k?"$$ --":"$$ -";for(var l=D+1;l<=C;l++){m+="--"}m+=i?"- \n":"\n";var e=k?"$$ |":"$$";var E=i?" |\n":"\n";if(y){c+="$$B"}else{c+="$$W"}if(G){c+="c"}if(-1!=I){c+="m"+I}c+="\n";if(d){c+=m}for(var j=u;j<=t;j++){c+=e;for(var l=D;l<=C;l++){var b=A.Get_Mark(l+1,j+1);var z=(null!=b?b.Get_Type():EDrawingMark.Lm);var n=(null!=b?b.Get_Text():"");var x=K.Get(l+1,j+1);if(BOARD_EMPTY==x){if(EDrawingMark.Tr===z){c+=" T"}else{if(EDrawingMark.Cr===z){c+=" C"}else{if(EDrawingMark.Sq===z){c+=" S"}else{if(EDrawingMark.X===z){c+=" M"}else{if(EDrawingMark.Tx===z&&1===n.length&&97<=n.charCodeAt(0)&&n.charCodeAt(0)<=122){c+=String.fromCharCode(32,n.charCodeAt(0))}else{if(EDrawingMark.Tx===z&&1===n.length&&65<=n.charCodeAt(0)&&n.charCodeAt(0)<=90){c+=String.fromCharCode(32,n.charCodeAt(0)+32)}else{if(K.Is_HandiPoint(l+1,j+1)){c+=" ,"}else{c+=" ."}}}}}}}}else{if(-1!==I&&z==EDrawingMark.Tx&&Common_IsInt(n)){var p=parseInt(n)-I+1;if(10==p){c+=" 0"}else{c+=" "+p}}else{if(BOARD_BLACK==x){if(EDrawingMark.Tr===z){c+=" Y"}else{if(EDrawingMark.Cr===z){c+=" B"}else{if(EDrawingMark.Sq===z){c+=" #"}else{if(EDrawingMark.X===z){c+=" Z"}else{c+=" X"}}}}}else{if(BOARD_WHITE==x){if(EDrawingMark.Tr===z){c+=" Q"}else{if(EDrawingMark.Cr===z){c+=" W"}else{if(EDrawingMark.Sq===z){c+=" @"}else{if(EDrawingMark.X===z){c+=" P"}else{c+=" O"}}}}}}}}}c+=E}if(B){c+=m}this.m_oTextArea.value=c};function CDrawingViewPortWindow(){CDrawingViewPortWindow.superclass.constructor.call(this);this.m_oButtonReset=null}CommonExtend(CDrawingViewPortWindow,CDrawingConfirmWindow);CDrawingViewPortWindow.prototype.Init=function(a,c){CDrawingViewPortWindow.superclass.Init.call(this,a,true);this.protected_UpdateSizeAndPosition(c.Drawing);this.m_oGameTree=c.GameTree;this.m_oDrawing=c.Drawing;var m=window.g_oLocalization?window.g_oLocalization.gameRoom.window.boardCropping.caption:"Crop the board...";this.Set_Caption(m);var k=this.HtmlElement.ConfirmInnerDiv;var g=this.HtmlElement.ConfirmInnerControl;var e=this.HtmlElement.ConfirmInnerDiv.id;k.style.background="url('"+g_sBackground+"')";var n=new CDrawingBoard();g.Set_Type(2,n);var h=e+"B";var f=this.protected_CreateDivElement(k,h);var q=CreateControlContainer(h);q.Bounds.SetParams(0,0,1000,1000,true,true,false,false,-1,-1);q.Anchor=(g_anchor_top|g_anchor_left|g_anchor_bottom|g_anchor_right);g.AddControl(q);this.m_oBoardDiv=f;this.m_oBoardControl=q;n.Init(h,this.m_oGameTree.Copy_ForScoreEstimate());n.Set_ViewPortMode(this);this.m_oDrawingBoard=n;var r=this.HtmlElement.OkCancelDiv;var d=window.g_oLocalization?window.g_oLocalization.gameRoom.window.boardCropping.buttonReset:"Reset";var j=100;var p=e+"R";var o=this.protected_CreateDivElement(r,p);var b=CreateControlContainerByElement(o);b.Bounds.SetParams(0,9,159,1000,false,true,true,false,j+10,21);b.Anchor=(g_anchor_top|g_anchor_right);this.HtmlElement.InnerControl.AddControl(b);var l=this;var i=new CDrawingButtonSimpleText(d,function(){var s=l.m_oGameTree.Get_DrawingBoard();if(s){s.Reset_ViewPort();l.m_oDrawing.Update_Size(true);l.Close()}},"");i.Init(p,this);this.m_oButtonReset=i;this.private_UpdateSelectionOnShow()};CDrawingViewPortWindow.prototype.Update_Size=function(a){CDrawingViewPortWindow.superclass.Update_Size.call(this,a);if(this.m_oDrawingBoard){this.m_oDrawingBoard.Update_Size(a)}if(this.m_oButtonReset){this.m_oButtonReset.Update_Size(a)}};CDrawingViewPortWindow.prototype.Show=function(b){while(this.m_oBoardDiv.firstChild){this.m_oBoardDiv.removeChild(this.m_oBoardDiv.firstChild)}if(this.m_oBoardControl){this.m_oBoardControl.Clear()}var a=new CDrawingBoard();a.Init(this.m_oBoardDiv.id,b.GameTree.Copy_ForScoreEstimate());a.Set_ViewPortMode(this);this.m_oDrawingBoard=a;CDrawingViewPortWindow.superclass.Show.apply(this,arguments);this.Update_Size(true);this.private_UpdateSelectionOnShow()};CDrawingViewPortWindow.prototype.Handle_OK=function(){if(this.m_oGameTree){var b=this.m_oGameTree.Get_DrawingBoard();if(b){var a=this.m_oDrawingBoard.Get_SelectedViewPort();if(a.X1===a.X0&&a.Y1===a.Y0){b.Reset_ViewPort()}else{if(a.X1-a.X0<3||a.Y1-a.Y0<3){var e=this.m_oGameTree;var c=this.m_oDrawing;if(c){var d=window.g_oLocalization?window.g_oLocalization.gameRoom.window.boardCropping.errorMessage:"Sorry, the cropped part can't be so small.";CreateWindow(c.Get_MainDiv().id,EWindowType.Error,{GameTree:e,Drawing:c,ErrorText:d,W:270,H:80})}return}else{b.Set_ViewPort(a.X0-1,a.Y0-1,a.X1-1,a.Y1-1)}}this.m_oDrawing.Update_Size(true)}}this.Close()};CDrawingViewPortWindow.prototype.private_UpdateSelectionOnShow=function(){var b=this.m_oGameTree.Get_DrawingBoard();if(b&&this.m_oDrawingBoard){var a=b.Get_ViewPort();var c=this.m_oGameTree.Get_Board().Get_Size();if(0!==a.X0||0!==a.Y0||c.X-1!==a.X1||c.Y-1!==a.Y1){this.m_oDrawingBoard.Set_ViewPortSelection(a.X0,a.Y0,a.X1,a.Y1)}else{this.m_oDrawingBoard.Set_ViewPortSelection(-1,-1,-1,-1)}}};function CDrawingCreateNewWindow(){CDrawingCreateNewWindow.superclass.constructor.call(this)}CommonExtend(CDrawingCreateNewWindow,CDrawingConfirmWindow);CDrawingCreateNewWindow.prototype.Init=function(h,g){CDrawingViewPortWindow.superclass.Init.call(this,h,false);this.protected_UpdateSizeAndPosition(g.Drawing);this.m_oGameTree=g.GameTree;this.m_oDrawing=g.Drawing;this.Set_Caption("Create new");var b=this.HtmlElement.ConfirmInnerDiv;var c=this.HtmlElement.ConfirmInnerControl;var e=this.HtmlElement.ConfirmInnerDiv.id;var f=20;var a=5;var d=5;this.BlackPlayer=this.private_CreateInfoElement(b,c,e,"Black","Black",d,f);d+=2*(f+a);this.WhitePlayer=this.private_CreateInfoElement(b,c,e,"White","White",d,f);d+=2*(f+a);this.BoardSize=this.private_CreateInfoElement(b,c,e,"Board size","15",d,f);d+=2*(f+a)};CDrawingCreateNewWindow.prototype.private_CreateDivElement=function(c,b,d){var a=document.createElement("div");a.setAttribute("id",b);a.setAttribute("style","position:absolute;padding:0;margin:0;");a.setAttribute("oncontextmenu","return false;");a.style.fontFamily="Tahoma, Sans serif";a.style.fontSize=d*15/20+"px";a.style.lineHeight=d+"px";a.style.height=d+"px";a.style.fontWeight=550;c.appendChild(a);return a};CDrawingCreateNewWindow.prototype.private_CreateInputElement=function(c,b){var a=document.createElement("input");a.setAttribute("id",b);a.setAttribute("style","position:absolute;padding:0;margin:0;");a.setAttribute("oncontextmenu","return false;");a.setAttribute("type","text");a.style.fontFamily="Tahoma, Sans serif";a.style.fontSize="10pt";a.style.outline="none";a.style.border="1px solid rgb(169,169,169)";c.appendChild(a);return a};CDrawingCreateNewWindow.prototype.private_CreateInfoElement=function(n,i,m,d,l,h,c){var o=10;var a=10;var e=m+d;var g=this.private_CreateDivElement(n,e,c);var f=CreateControlContainer(e);f.Bounds.SetParams(o+10,h,a,1000,true,true,false,false,-1,c);f.Anchor=(g_anchor_left|g_anchor_top|g_anchor_right);i.AddControl(f);Common.Set_InnerTextToElement(g,d);h+=c;var b=e+"Value";var k=this.private_CreateInputElement(n,b);var j=CreateControlContainer(b);j.Bounds.SetParams(o,h+1,a,1000,true,true,true,false,-1,c-2);j.Anchor=(g_anchor_left|g_anchor_top|g_anchor_right);i.AddControl(j);k.value=l;return k};CDrawingCreateNewWindow.prototype.Get_DefaultWindowSize=function(){return{W:195,H:340}};CDrawingCreateNewWindow.prototype.Handle_OK=function(){var d=this.BoardSize.value;var c=19;var b=19;var a=-1;if(-1==(a=d.indexOf(":"))){c=Math.min(52,Math.max(parseInt(d),2));b=c}else{c=parseInt(d.substr(0,a));b=parseInt(d.substr(a+1,d.length-a-1))}if(isNaN(c)||c<2||c>52||isNaN(b)||b<2||b>52){CreateWindow(this.m_oDrawing.Get_MainDiv().id,EWindowType.Error,{GameTree:this.m_oGameTree,Drawing:this.m_oDrawing,ErrorText:"Size value must be an integer number from 2 to 52, or pair of such numbers separated by ':' character.",W:300,H:115});return}if(this.m_oGameTree){var e="(;FF[4]";e+="SZ["+(c===b?c:c+":"+b)+"]";e+="PB["+this.BlackPlayer.value+"]";e+="PW["+this.WhitePlayer.value+"]";e+=")";this.m_oGameTree.Load_Sgf(e,null,null,"sgf")}this.Close()};function CDrawingClipboardWindow(){CDrawingClipboardWindow.superclass.constructor.call(this);this.m_oTextArea=null}CommonExtend(CDrawingClipboardWindow,CDrawingConfirmWindow);CDrawingClipboardWindow.prototype.Init=function(e,d){CDrawingClipboardWindow.superclass.Init.call(this,e,true);this.protected_UpdateSizeAndPosition(d.Drawing);this.Set_Caption("Load SGF from clipboard");var a=this.HtmlElement.ConfirmInnerDiv;var b=this.HtmlElement.ConfirmInnerControl;var c=this.HtmlElement.ConfirmInnerDiv.id;this.m_oGameTree=d.GameTree;this.private_CreateInfoAreaElement(a,b,c);this.private_FillTextArea(d.GameTree);this.m_oTextArea.select()};CDrawingClipboardWindow.prototype.Show=function(a){CDrawingClipboardWindow.superclass.Show.call(this,a);this.private_FillTextArea();this.m_oTextArea.select()};CDrawingClipboardWindow.prototype.private_CreateInfoAreaElement=function(a,b,d){var c=document.createElement("textarea");var f=d+"TA";c.setAttribute("id",f);c.setAttribute("style","position:absolute;padding:0;margin:0;");c.setAttribute("oncontextmenu","return false;");c.style.fontFamily="Courier New, monospacef";c.style.fontSize="10pt";c.style.resize="none";c.style.outline="none";c.style.border="1px solid rgb(169,169,169)";c.style.height="100%";c.style.width="100%";this.m_oTextArea=c;a.appendChild(c);var e=CreateControlContainer(f);e.Bounds.SetParams(0,0,1000,1000,false,false,false,false,-1,-1);e.Anchor=(g_anchor_left|g_anchor_top|g_anchor_right|g_anchor_bottom);b.AddControl(e);return c};CDrawingClipboardWindow.prototype.private_FillTextArea=function(a){this.m_oTextArea.value="";if(window.clipboardData){this.m_oTextArea.value=window.clipboardData.getData("Text")}};CDrawingClipboardWindow.prototype.Handle_OK=function(){var a=this.m_oTextArea.value;if(a&&""!==a){this.m_oGameTree.Load_Sgf(a,null,null,null)}this.Close()};CDrawingClipboardWindow.prototype.Get_DefaultWindowSize=function(){return{W:300,H:200}};function CDrawingKifuWindow(){CDrawingKifuWindow.superclass.constructor.call(this);this.m_nKifuW=-1;this.m_nKifuH=-1;this.m_nMoveMin=-1;this.m_nMoveMax=-1;this.m_nNextW=72}CommonExtend(CDrawingKifuWindow,CDrawingWindow);CDrawingKifuWindow.prototype.Init=function(d,e){CDrawingKifuWindow.superclass.Init.call(this,d,e);this.protected_UpdateSizeAndPosition(e.Drawing);var a=window.g_oLocalization?window.g_oLocalization.gameRoom.window.kifu.caption:"Kifu";this.Set_Caption(a);var b=this.HtmlElement.InnerDiv;var c=this.HtmlElement.InnerControl;this.HtmlElement.Canvas=this.private_CreateCanvasElement(b,c,d);this.m_oGameTree=e.GameTree;this.m_oDrawing=e.Drawing;if(this.m_oDrawing&&this.m_oDrawing.Register_KifuWindow){this.m_oDrawing.Register_KifuWindow(this)}};CDrawingKifuWindow.prototype.Get_DefaultWindowSize=function(){return{W:650,H:730}};CDrawingKifuWindow.prototype.private_CreateCanvasElement=function(a,b,d){var c=document.createElement("canvas");var f=d+"C";c.setAttribute("style","position:absolute;padding:0;margin:0;");c.id=f;a.appendChild(c);var e=CreateControlContainer(f);e.Bounds.SetParams(0,0,1000,1000,false,false,false,false,-1,-1);e.Anchor=(g_anchor_left|g_anchor_top|g_anchor_right|g_anchor_bottom);b.AddControl(e);return c};CDrawingKifuWindow.prototype.private_DrawLogicBoard=function(j,g,h,e){j.clearRect(0,0,g,h);j.strokeStyle="rgba(0, 0, 0, 1)";j.fillStyle="rgba(0, 0, 0, 1)";var i=30;var c=30;var f=this.private_DrawRepetitions(j,0,g,e,i,false);var k=Math.max(50,Math.min(g,h-c-f));var b=(g-k)/2|0;var a=c;var d=this.private_DrawBoard(j,e,b,a,k);this.private_DrawKifuCaption(j,g,"("+d.Min+" ~ "+d.Max+")");this.private_DrawRepetitions(j,h-f,g,e,i,true);this.private_DrawNextMove(j,25)};CDrawingKifuWindow.prototype.Show=function(c){CDrawingKifuWindow.superclass.Show.call(this,c);var a=this.HtmlElement.InnerDiv.clientWidth;var b=this.HtmlElement.InnerDiv.clientHeight;this.private_DrawLogicBoard(this.HtmlElement.Canvas.getContext("2d"),a,b,this.m_oGameTree.Get_LogicBoardForKifu())};CDrawingKifuWindow.prototype.Update_Size=function(c){CDrawingKifuWindow.superclass.Update_Size.call(this,c);var a=this.HtmlElement.InnerDiv.clientWidth;var b=this.HtmlElement.InnerDiv.clientHeight;if(true===c||Math.abs(a-this.m_nKifuW)>0.001||Math.abs(b-this.m_nKifuH)>0.001){this.m_nKifuW=a;this.m_nKifuH=b;this.private_DrawLogicBoard(this.HtmlElement.Canvas.getContext("2d"),a,b,this.m_oGameTree.Get_LogicBoardForKifu())}};CDrawingKifuWindow.prototype.private_DrawStone=function(b,a,e,d,c){if(BOARD_BLACK===a){b.fillStyle="rgb(0, 0, 0)";b.beginPath();b.arc(e,d,c,0,2*Math.PI);b.fill()}else{if(BOARD_WHITE===a){b.fillStyle="rgb(255, 255, 255)";b.beginPath();b.arc(e,d,c,0,2*Math.PI);b.fill();b.stroke()}}};CDrawingKifuWindow.prototype.private_DrawMoveNumber=function(k,e,l,j,a,c){if(-1===c){return}var d=""+c;var i=a;var h=(Common_IsInt(d)?"Arial":"Helvetica, Arial, Verdana");var g=i+"px "+h;k.fillStyle=e===BOARD_WHITE?"rgb(0,0,0)":"rgb(255,255,255)";k.font=g;var b=i/3+0.15*i;var f=d.length>2?(2*a-k.measureText(d).width)/2-a:(2*a-1.4*k.measureText(d).width)/2-a;if(d.length>2){k.setTransform(1,0,0,1.4,l+f,j+b)}else{k.setTransform(1.4,0,0,1.4,l+f,j+b)}k.fillText(d,0,0);k.setTransform(1,0,0,1,0,0)};CDrawingKifuWindow.prototype.private_DrawBoard=function(s,r,i,h,t){var l=r.Get_Size();var v=(l.X-1)*g_dBoardCellW+2*g_dBoardHorOffset;var k=(t/v*g_dBoardHorOffset)|0;var a=(t/v*g_dBoardCellW)|0;var z=k+i;var w=k+h;s.lineWidth=2;s.beginPath();s.moveTo(z,w);s.lineTo(z+(l.X-1)*a,w);s.lineTo(z+(l.X-1)*a,w+(l.Y-1)*a);s.lineTo(z,w+(l.Y-1)*a);s.closePath();s.stroke();s.lineWidth=1;s.beginPath();for(var q=0;q<l.X;++q){s.moveTo(z+q*a+0.5,w+0.5);s.lineTo(z+q*a+0.5,w+(l.Y-1)*a+0.5)}for(var p=0;p<l.Y;++p){s.moveTo(z+0.5,w+p*a+0.5);s.lineTo(z+(l.X-1)*a+0.5,w+p*a+0.5)}s.stroke();s.beginPath();var u=r.Get_HandiPoints();for(var b=0,c=u.length;b<c;++b){var f=u[b][0]*a+z;var e=u[b][1]*a+w;s.rect(f-3,e-3,7,7)}s.fill();var g=a/2|0;var d=-1;var j=-1;for(var p=0;p<l.Y;++p){for(var q=0;q<l.X;++q){var A=r.Get(q+1,p+1);var m=r.Get_Num(q+1,p+1);var o=q*a+z;var n=p*a+w;this.private_DrawStone(s,A,o,n,g);if(-1!==m){this.private_DrawMoveNumber(s,A,o,n,g,m);if(-1===d||d>m){d=m}if(-1===j||j<m){j=m}}}}this.m_nMoveMin=d;this.m_nMoveMax=j;return{Min:d,Max:j}};CDrawingKifuWindow.prototype.private_DrawKifuCaption=function(c,a,b){c.fillStyle="rgb(0,0,0)";c.font="16px Arial";var d=20;var e=(a-c.measureText(b).width)/2;c.fillText(b,e,d)};CDrawingKifuWindow.prototype.private_DrawRepetitions=function(p,d,j,o,s,c){var t=(s/2)|0;var f=5;var n=(s/2)|0;var g=s|0;var k=5;var h=j-t;var l=k+d;var r=(s/2)|0;var m=t;function u(x){if(m+x<h||true===w){w=false;return true}else{m=t;w=false;l+=s+f;return false}}if(o.m_aRepetitions){l+=(s/2)|0;var w=true;for(var b=0,a=o.m_aRepetitions.length;b<a;++b){var e=o.m_aRepetitions[b];if(e.aReps.length<=0){continue}for(var q=0,i=e.aReps.length;q<i;++q){var v=e.aReps[q];u(s);if(true===c){this.private_DrawStone(p,v.nValue,m+r,l,r);this.private_DrawMoveNumber(p,v.nValue,m+r,l,r,v.nMoveNumber)}m+=s}u(g);if(true===c){this.private_DrawDots(p,m+r,l,s)}m+=g;u(s);if(true===c){this.private_DrawStone(p,e.nValue,m+r,l,r);this.private_DrawMoveNumber(p,e.nValue,m+r,l,r,e.nMoveNumber)}m+=s+n}l+=(s/2)|0}l+=k;return l};CDrawingKifuWindow.prototype.private_DrawDots=function(c,h,f,a){var e=(h-a/2)|0;var b=(a/15)|0;var g=(a/10*3)|0;var d=(a/5)|0;c.fillStyle="rgb(0,0,0)";c.beginPath();c.arc(e+d,f,b,0,2*Math.PI);c.arc(e+d+g,f,b,0,2*Math.PI);c.arc(e+d+2*g,f,b,0,2*Math.PI);c.fill()};CDrawingKifuWindow.prototype.private_DrawNextMove=function(h,g){if(!this.m_oGameTree){return}var i=this.m_oGameTree.Get_MovesCount()+1;var f=this.m_oGameTree.Get_NextMove();var b=g/2|0;h.clearRect(0,0,this.m_nNextW,28+2);if(i>0&&i<=this.m_nMoveMax){var e=window.g_oLocalization?window.g_oLocalization.gameRoom.window.kifu.next:"Next";h.fillStyle="rgb(0,0,0)";h.font="16px Arial";var c=20;var d=20;h.fillText(e,d,c);var a=70;this.private_DrawStone(h,f,a+b,28-b,b);this.private_DrawMoveNumber(h,f,a+b,28-b,b,i);this.m_nNextW=a+2*b+2}else{if(i>0){var e=window.g_oLocalization?window.g_oLocalization.gameRoom.window.kifu.end:"End";h.fillStyle="rgb(0,0,0)";h.font="16px Arial";var c=20;var d=20;h.fillText(e,d,c);this.m_nNextW=100}}};CDrawingKifuWindow.prototype.Update_NextMove=function(){this.private_DrawNextMove(this.HtmlElement.Canvas.getContext("2d"),25)};var EWindowType={Common:0,Confirm:1,Error:2,GameInfo:3,Settings:4,CountColors:6,GifWriter:7,About:8,DiagramSL:9,ViewPort:10,CreateNew:11,Clipboard:12,Kifu:13};var g_aWindows={};function CreateWindow(b,i,g){if(!g_aWindows[b]){g_aWindows[b]={}}var h=g_aWindows[b];if(h[i]){var a=h[i];a.Show(g);return a}else{var f="unknownwindow";switch(i){case EWindowType.GameInfo:f="Info";break;case EWindowType.Settings:f="Settings";break;case EWindowType.Error:f="Error";break;case EWindowType.CountColors:f="CountColors";break;case EWindowType.GifWriter:f="GifWriter";break;case EWindowType.About:f="About";break;case EWindowType.DiagramSL:f="DiagramSL";break;case EWindowType.ViewPort:f="ViewPort";break;case EWindowType.CreateNew:f="CreateNew";break;case EWindowType.Clipboard:f="Clipboard";break;case EWindowType.Kifu:f="Kifu";break}var d=b+f+RenjuBoardApi.Get_Version();var c=document.createElement("div");c.setAttribute("id",d);c.setAttribute("style","position:absolute;padding:0;margin:0;width:500px;height:500px;left:300px;top:300px;");c.setAttribute("oncontextmenu","return false;");if(g.Drawing){var e=g.Drawing.Get_MainDiv();e.appendChild(c);var a=null;switch(i){case EWindowType.GameInfo:a=new CDrawingInfoWindow();break;case EWindowType.Settings:a=new CDrawingSettingsWindow();break;case EWindowType.Error:a=new CDrawingErrorWindow();break;case EWindowType.CountColors:a=new CDrawingCountColorsWindow();break;case EWindowType.GifWriter:a=new CDrawingGifWriterWindow();break;case EWindowType.About:a=new CDrawingAboutWindow();break;case EWindowType.DiagramSL:a=new CDrawingDiagramSLWindow();break;case EWindowType.ViewPort:a=new CDrawingViewPortWindow();break;case EWindowType.CreateNew:a=new CDrawingCreateNewWindow();break;case EWindowType.Clipboard:a=new CDrawingClipboardWindow();break;case EWindowType.Kifu:a=new CDrawingKifuWindow();break}h[i]=a;if(null!==a){a.Init(d,g);a.Update_Size(true)}return a}}return null}var ECommand={Unknown:0,B:1,W:2,MN:3,AB:257,AW:258,AE:259,PL:260,RM:513,CR:529,MA:530,SQ:531,TR:532,LB:533,BL:769,WL:770,OB:771,OW:772,CT:4353,CM:4354};function CCommand(c,b,a){this.m_nType=undefined===c?ECommand.Unknown:c;this.m_oValue=undefined===b?null:b;this.m_nCount=undefined===a?0:a}CCommand.prototype.Get_Type=function(){return this.m_nType};CCommand.prototype.Get_Value=function(){return this.m_oValue};CCommand.prototype.Get_Count=function(){return this.m_nCount};CCommand.prototype.Set_Type=function(a){this.m_nType=a};CCommand.prototype.Set_Value=function(a){this.m_oValue=a};CCommand.prototype.Set_Count=function(a){this.m_nCount=a};CCommand.prototype.To_String=function(){return JSON.stringify({Type:this.m_nType,Value:this.m_oValue,Count:this.m_nCount})};CCommand.prototype.From_String=function(a){var b=JSON.parse(a);this.m_nType=b.Type;this.m_oValue=b.Value;this.m_nCount=b.m_nCount};CCommand.prototype.Copy=function(){return new CCommand(this.m_nType,this.m_oValue,this.m_nCount)};var BOARD_EMPTY=0;var BOARD_BLACK=1;var BOARD_WHITE=2;var BOARD_DRAW=3;var EShowVariants={Next:0,Curr:1,None:2,Min:0,Max:2};var g_dBoard_H=460;var g_dBoard_W=g_dBoard_H;var g_dVerOff_2_Cell_H=17.51/23.61;var g_dHorOff_2_Cell_W=g_dVerOff_2_Cell_H;var g_dBoardCellW=23.61;var g_dBoardHorOffset=17.51;var g_dBoardCellW_2=g_dBoardCellW/2;var g_sBackground="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAIAAAD/gAIDAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAg3SURBVHhe7ZpLltw2DEVdNfPQ83gLnmYp3kLWkiwkC0syztAzd54ICgJBEPxXVef0PXJZLeL7SH1aXbdf//ztU+DHX/8e/93w743+84EF7Kp8/uVL3EOKv0OK1cgUoDeL1UhyjOPf6T/w+Ws4dNjcLstLtFS+tzyBgWpD/biEPGZvFqsRQylwiQWEXidhP+jUIk6CWfRavUrRVmVRce5q0Ua9UgydbhXtnHI3daIbmc6Sxz9Wlq1XRY30rEzJ0yzvREHxVZYZzJm4ffvjO/2sh3G9Z0Eg3M3o0CzOTEM4Q73IUCqOM0RUGynVefv2+3cWRRudeuXRFRyulIbxDcxEfpB8FJQMzPgMWToVXiuL8MM5IKiTRmKaVfNyNGlZSgGUWTW+iYqvxQJjcRVOG2BZinB9KFHKktdmWuZmp1hp1slmfKWIxk48M7oFlcUCyl0Gh5+6h0ljo4U3fs5yU3bRohSAmbLMjwD74D84EiruKTuJYz1USwNjkm7pQylRmsxG2t0rMynQoz/xL2vWFU5HKBj7eqVi5WoPUwvVrhSRtIEnQcRXDWcZOUVLfMYxTsWyHqYGiEHapG/vJLEsraOF851hnIZroGZQulX98JSwXjoCZzlFHFtWRCnLNrEA6mbJCgx0YoD4vNDKuSaI0bdds5iaXrNIpYDcX0asXop125Npp1775sDiFOvoZ2fmHXpRtE0TbBHEQr4HTJGl1/CVPvJApcBdKbXkilsMcuo1nOW6x9FfDMqU7mgtlO6k90esKUm2vtqb0ZaPXVbAeHSYXFzRHXK8He2p7RgKTc5kOXxPpVR8bHFApJAHZzDEQjfDnVz1ff1ivs5X/RDmQUmXlzh+rT3T0oQtcxGy91mIH86R9ugK5Gj0NS1VicNlmOT9K4pKQRM8WSViTSv1LnAkk43Ht+pBJi3WKdSIUpR+WGKUZZ6zkpkU8B10lHpd16zzZZgKijS0xZ8z/NEWqCB8luJwiuHJgGNjkaoM9S4oea2cKxX3TEjdM9BwJyAmEmUlwek47q211efD7eSlHhMGRDppw47Xrzt9SgFubDnpNBCTSknQ2rXRUkIuVip8HgdPWJkoVrdSBBKE6PlcdXG40/IBtEP7hNxfCOkCsMMb5coyUoOHWINK7UO1MT0ZxBWE4xM0N7SxXpkOcL/PKnWGnoXiUBsqpuptBhkfn0IaM7VSI3mCf/6aylHCTeJIU0gkNUnEeiaoXjbAP+JzrV4IeO94zSnPvESsJZeGKVQPa2UiEPMnzUMdJUj2ZbYn6sXS8Gpavqx6yK/mx8qa12vyYkcP8RESKJVpMj7RFSRXCp/xNGzRCwfVFgfWcYT9GoKfn3HgsajWWJz46w7NZclIHVccZmEh+GYlyN3XhSoZi8847fAQKIkAglhizQ8XhKCTzWzl6Ln/t0upFAin4YqrwysrBVDepFIgffl3knfuiPjiMuWUepGNmDb1h1K4OUoBNVq1B/GVyH66aquWHcR6w0XLpupPSDOan1JZxysR+aCwExQwvOpNx/QCn97UGpViDEdx6zg4J2X+mYAVz7vi7HKovRfHq34ajqOUYpYuK/SjtjggMA+WcIy1WMPLCrBLPtsSf7SR6tpckyUNkoq1cM7zZVVaaJuZmXXFttPQVOpJeq1i5zWLgEDEO1cKnGJxS8shgfD5zpUC4StH77+NxxC+zAZOvRrvaCbs4l9TB664OUeQtrNhphGFuGbtOxM34Z4Qy6ZEYFzg2aJrTrqMl3RCIK/a4sAoToTK3bAxtzSTQlD1cosDc1CKUkA+PjDr0jKfUVss1XDcK2Aa4GDX8S5agiibRpe4V8B+nwVyz1zpavQHMFBVu4uybH359wqgdFlY3jOj6leOXcgsxmk4EBcRndJ9Gh1//FVrWNzNVT1wbM2SNSKT6pWlClIp496JE7ed1hTpnxtU6hIyILmUivR7odFELNOikVIRLehE/EuF+O2C43dVBeYdCbhfp+GMUovhp03sPO9RWSkAfaJYk0op914896AXGwxMIbsMFKnSHWJNKrUXcSY+BanG9Df/dvPUM1GRPDq8nFLEU1eWXEzGc9YHJRKxBi6B/2+kIDjtXumbf2W4yIHy2KX3IqOUwuexsub16q1D0eX+mOnMlQLXE7wqoqrgvMSMDOWUwUMqtYOM1vIXfyLxEkPXNavkgJ08Oigd74XzmgFLB+OeizQ7soSvcZi+8rj2ElR+kX5lVCeK+Uby+Mb7rFIa6fw6muYtVWtrcTFnwnjOyu1wRB3MjxDmwbWoFOhTbXEgkNczU3b9odQJpIboR3xWc5NN1axEo+Nhlv6q5Di2xKychi0hHHs1z0Aa5KON+EHM0ZZGgNML8FZWYwLHDENqiwPrUPGxxYEyziT57lqs4dkm2t1nEtV9w9nHZkoCXxEezbMUV1bLFDFdxo9gz4uK+gX+A+ZDrA4+xOrgQ6wOimJ13a0Gbm0z94RGX+e+5lC6hwIt1uR9bdL96fiyeqfhwHrpYkzZLi82bulF2phZDLGkXVeO3uZ3T4YC6ZyMLcXMXuBljq7mu4wlk1lMd9ss+3tl6/usfNWYZqBlfUlf2JdCOfRmGUNl2fKm1O9EKUU71by5psuzkJmTJRHLtGtJAJwcEmmW25i5pNmmLMqmlOUSy6+jmgB0RcjdG6nGmU0UvopiBoli7e5kVXzCiTaeKGgkyUMdd8OFnShfirwwPmFmkTtEXyJSStwB8yzrv3JU6oSYj0/kWdYkgmSkV/hUQZLnrE2dMKviE060qUSsV0CGusTa3cna+IQZc0Ei6IXtTmfmGfDTp/8Aysg4kH9KLq0AAAAASUVORK5CYII=";var EDITINGFLAGS_MASK=4294967295;var EDITINGFLAGS_NEWNODE=1;var EDITINGFLAGS_MOVE=2;var EDITINGFLAGS_BOARDMODE=4;var EDITINGFLAGS_LOADFILE=8;var EDITINGFLAGS_GAMEINFO=16;var EDITINGFLAGS_VIEWPORT=32;var EDITINGFLAGS_REMOVE=64;var EDITINGFLAGS_NEWNODE_NON=EDITINGFLAGS_MASK^EDITINGFLAGS_NEWNODE;var EDITINGFLAGS_MOVE_NON=EDITINGFLAGS_MASK^EDITINGFLAGS_MOVE;var EDITINGFLAGS_BOARDMODE_NON=EDITINGFLAGS_MASK^EDITINGFLAGS_BOARDMODE;var EDITINGFLAGS_LOADFILE_NON=EDITINGFLAGS_MASK^EDITINGFLAGS_LOADFILE;var EDITINGFLAGS_GAMEINFO_NON=EDITINGFLAGS_MASK^EDITINGFLAGS_GAMEINFO;var EDITINGFLAGS_VIEWPORT_NON=EDITINGFLAGS_MASK^EDITINGFLAGS_VIEWPORT;var EDITINGFLAGS_REMOVE_NON=EDITINGFLAGS_MASK^EDITINGFLAGS_REMOVE;function CGameTree(a){this.m_oSettings=new CLocalSetting(this);this.m_oSound=new CBoardSound();this.m_oDrawing=a;this.m_oInterfaceState=new CInterfaceState();this.m_oBoard=new CLogicBoard();this.m_oDrawingBoard=null;this.m_oDrawingNavigator=null;this.m_oFirstNode=new CNode(this);this.m_oCurNode=this.m_oFirstNode;this.m_oStartNode=this.m_oFirstNode;this.m_oGameCurNode=null;this.m_nBlackPassCount=0;this.m_nWhitePassCount=0;this.m_nNextMove=BOARD_BLACK;this.m_nMovesCount=0;this.m_nCurNodeDepth=0;this.m_sApplication="";this.m_sCharset="";this.m_sGameAnnotator="";this.m_sBlackRating="";this.m_sBlackTeam="";this.m_sCopyright="";this.m_sDateTime="";this.m_sGameEvent="";this.m_sGameName="";this.m_sGameInfo="";this.m_sOverTime="";this.m_sBlack="Black";this.m_sGamePlace="";this.m_sWhite="White";this.m_sResult="";this.m_sGameRound="";this.m_sRules="";this.m_sGameSource="";this.m_nTimeLimit=0;this.m_sGameTranscriber="";this.m_sWhiteRating="";this.m_sWhiteTeam="";this.m_bEventEnable=true;this.m_eShowVariants=EShowVariants.Next;this.m_nEditingFlags=4294967295;this.m_nAutoPlayTimer=null;this.m_dAutoPlaySpeed=0.75;this.m_nAutoPlayOldTime=-1;this.m_bTutorModeAuto=false;this.m_nTutorMode=BOARD_EMPTY;this.m_nTutorInterval=300;this.m_sTutorText="";this.m_nTutorId=null;this.m_pTutorRightCallback=null;this.m_pTutorWrongCallback=null;this.m_pTutorResetCallback=null;this.m_nGifId=null;this.m_oHandler=null;this.m_bModified=false;this.m_bKifuMode=false;this.m_nKifuEditFlags=0}CGameTree.prototype.Copy_ForScoreEstimate=function(){var a=new CGameTree();a.m_oBoard=this.m_oBoard.Copy();a.m_oFirstNode=this.m_oFirstNode.Copy_CurrentVariant(this.m_oCurNode);a.m_oCurNode=a.m_oFirstNode;a.Step_ForwardToEnd();return a};CGameTree.prototype.Set_TutorMode=function(a,c,b){if(true===a){this.m_bTutorModeAuto=true;this.m_nTutorMode=BOARD_EMPTY}else{this.m_bTutorModeAuto=false;this.m_nTutorMode=c}if(undefined!==b){this.m_nTutorInterval=b*1000}};CGameTree.prototype.Set_TutorNewNodeText=function(a){if(!a||""===a){a="Wrong.\nOut of variants."}this.m_sTutorText=a};CGameTree.prototype.Set_TutorCallbacks=function(a,c,b){this.m_pTutorRightCallback=a;this.m_pTutorWrongCallback=c;this.m_pTutorResetCallback=b};CGameTree.prototype.Find_ProblemRightVariant=function(){var b=[];this.m_oFirstNode.Find_RightNodes(b);if(b.length>0){var a=Math.max(0,Math.min(b.length-1,Math.floor(Math.random()*b.length)));b[a].Make_ThisNodeCurrent();return true}return false};CGameTree.prototype.Start_AutoPlay=function(e){if(!(EDITINGFLAGS_MOVE&this.m_nEditingFlags)&&true!==e){return}this.Stop_AutoPlay();if(this.m_oDrawing){this.m_oDrawing.On_StartAutoPlay()}var b=this;var d=function(){if(b.Get_CurNode().Get_NextsCount()>0){b.m_nAutoPlayTimer=0;b.Step_Forward(1,e)}if(b.Get_CurNode().Get_NextsCount()>0){b.m_nAutoPlayOldTime=new Date().getTime();b.m_nAutoPlayTimer=setTimeout(d,b.Get_AutoPlayInterval())}else{b.m_nAutoPlayTimer=null;if(b.m_oDrawing){b.m_oDrawing.On_StopAutoPlay()}}};var c=new Date().getTime();var a=c-this.m_nAutoPlayOldTime;var f=this.Get_AutoPlayInterval();var g=f-a;if(g<=0){d()}else{this.m_nAutoPlayTimer=setTimeout(d,g)}};CGameTree.prototype.Get_AutoPlayInterval=function(){var b=100;var a=7000;return b+(a-b)*(1-this.m_dAutoPlaySpeed)};CGameTree.prototype.Stop_AutoPlay=function(){if(this.m_oDrawing){this.m_oDrawing.On_StopAutoPlay()}if(null!==this.m_nAutoPlayTimer){clearTimeout(this.m_nAutoPlayTimer);this.m_nAutoPlayTimer=null}};CGameTree.prototype.Is_AutoPlay=function(){return null!==this.m_nAutoPlayTimer?true:false};CGameTree.prototype.Set_AutoPlaySpeed=function(a){this.m_dAutoPlaySpeed=a;if(this.m_oDrawing){this.m_oDrawing.Update_AutoPlaySpeed(a)}if(null!==this.m_nAutoPlayTimer){this.Start_AutoPlay()}};CGameTree.prototype.GoTo_NodeByTimeLine=function(b){var c=this.private_GetMovesCountInCurVariant();var d=b*(c-1);var a=this.m_oFirstNode;while(a.Get_NextsCount()>0&&d>0){d--;a=a.Get_Next()}this.GoTo_Node(a)};CGameTree.prototype.private_GetTimeLinePos=function(){var c=this.m_oFirstNode;var a=1;var b=1;while(c.Get_NextsCount()>0){a++;c=c.Get_Next();if(c===this.m_oCurNode){b=a}}if(a>0){return(b-1)/(a-1)}return 1};CGameTree.prototype.private_GetMovesCountInCurVariant=function(){var b=this.m_oFirstNode;var a=1;while(b.Get_NextsCount()>0){a++;b=b.Get_Next()}return a};CGameTree.prototype.On_EndLoadDrawing=function(){if(this.m_oDrawingNavigator){this.m_oDrawingNavigator.Create_FromGameTree()}if(this.m_oDrawing){this.Update_InterfaceState();this.m_oDrawing.Update_AutoPlaySpeed(this.m_dAutoPlaySpeed)}};CGameTree.prototype.Set_DrawingNavigator=function(a){this.m_oDrawingNavigator=a};CGameTree.prototype.Set_Drawing=function(a){this.m_oDrawing=a};CGameTree.prototype.Update_Size=function(){if(this.m_oDrawing){this.m_oDrawing.Update_Size()}};CGameTree.prototype.Get_Drawing=function(){return this.m_oDrawing};CGameTree.prototype.Get_DrawingBoard=function(){return this.m_oDrawingBoard};CGameTree.prototype.Get_DrawingNavigator=function(){return this.m_oDrawingNavigator};CGameTree.prototype.Focus=function(){if(this.m_oDrawingBoard){this.m_oDrawingBoard.Focus()}};CGameTree.prototype.Load_Sgf=function(h,l,e,b){if(!(this.m_nEditingFlags&EDITINGFLAGS_LOADFILE)){return}g_oIdCounter.Reset();var g=this.m_nEditingFlags;this.Reset_EditingFlags();var a=new CSgfReader(this);a.Load(h);if(this.m_bTutorModeAuto){this.m_nTutorMode=this.Get_NextMove()===BOARD_BLACK?BOARD_WHITE:BOARD_BLACK}var j=this.m_oBoard.Get_Size().X;var i=this.m_oBoard.Get_Size().Y;if(this.m_oDrawingBoard&&l){if(true===l.Auto){var d=(a.m_oViewPort.X0<=4?0:a.m_oViewPort.X0-2);var c=(j-a.m_oViewPort.X1<=3?j-1:a.m_oViewPort.X1);var n=(a.m_oViewPort.Y0<=4?0:a.m_oViewPort.Y0-2);var m=(i-a.m_oViewPort.Y1<=3?i-1:a.m_oViewPort.Y1);this.m_oDrawingBoard.Set_ViewPort(d,n,c,m)}else{if(undefined!==l.X0&&undefined!==l.X1&&undefined!==l.Y0&&undefined!==l.Y1){this.m_oDrawingBoard.Set_ViewPort(l.X0,l.Y0,l.X1,l.Y1)}}}else{if(this.m_oDrawingBoard){this.m_oDrawingBoard.Set_ViewPort(0,0,j-1,i-1)}}if(this.m_oDrawingNavigator){this.m_oDrawingNavigator.Create_FromGameTree();this.m_oDrawingNavigator.Update()}if(e){this.GoTo_MoveReference(e)}else{var k;if(this.Is_LoadUnfinishedFilesOnLastNode()&&this.Is_Unfinished()){k=this.m_oFirstNode.Get_LastNodeInMainVariant()}else{k=this.m_oFirstNode}this.m_oStartNode=k;this.GoTo_Node(k)}var f=this.Get_LoadShowVariants();if(ESettingsLoadShowVariants.FromFile!==this.Get_LoadShowVariants()){this.m_eShowVariants=f}this.m_nEditingFlags=g;if(this.m_oDrawingBoard){this.m_oDrawingBoard.On_EndLoadSgf()}if(this.m_oDrawing){this.m_oDrawing.Update_Size(true)}this.Set_Modified(false)};CGameTree.prototype.Save_Sgf=function(){var a=new CSgfWriter();a.Write(this);return a.m_sFile};CGameTree.prototype.CopyToClipboard=function(){var b=document.createElement("textarea");b.value=this.Save_Sgf();b.selectionStart=0;b.selectionEnd=b.value.length;document.body.appendChild(b);b.focus();var a=document.execCommand("copy");b.blur();document.body.removeChild(b);return a};CGameTree.prototype.Set_DrawingBoard=function(a){this.m_oDrawingBoard=a};CGameTree.prototype.Reset=function(){this.m_oFirstNode=new CNode(this);this.Set_GameName("");this.Set_Result("");this.Set_Rules("");this.Set_TimeLimit("");this.Set_OverTime("");this.Set_Black("Black");this.Set_BlackRating("");this.Set_White("White");this.Set_WhiteRating("");this.Set_Copyright("");this.Set_GameInfo("");this.Set_DateTime("");this.Set_GameEvent("");this.Set_GameRound("");this.Set_GamePlace("");this.Set_GameAnnotator("");this.Set_GameSource("");this.Set_GameTranscriber("");this.Init_Match()};CGameTree.prototype.GoTo_StartNode=function(){this.GoTo_Node(this.m_oStartNode)};CGameTree.prototype.Step_BackwardToStart=function(){var a=this.m_nEditingFlags;if(BOARD_EMPTY!==this.m_nTutorMode){this.Set_EditingFlags({Move:true})}this.GoTo_Node(this.m_oFirstNode);this.m_nEditingFlags=a;if(BOARD_EMPTY!==this.m_nTutorMode){if(this.m_pTutorResetCallback){this.private_SendCallback(this.m_pTutorResetCallback)}}};CGameTree.prototype.Step_Backward=function(a){var b=this.Get_CurNode();while(null!=b.Get_Prev()&&a>0){b=b.Get_Prev();a--;if(b.Get_NextsCount()>1){break}}this.GoTo_Node(b)};CGameTree.prototype.Step_Forward=function(a,c){var b=this.m_oCurNode;var d=this.m_nCurNodeDepth;if(1===a){if(!this.GoTo_Next(c)){return}if(this.m_oHandler&&this.m_oHandler.GoToNode){this.m_oHandler.GoToNode(this.Get_CurNode());this.m_nCurNodeDepth=d;this.m_oCurNode=b;return}this.Execute_CurNodeCommands()}else{for(var e=0;e<a;e++){this.GoTo_Next();if(this.Get_CurNode().Get_NextsCount()>1){break}}if(this.m_oHandler&&this.m_oHandler.GoToNode){this.m_oHandler.GoToNode(this.Get_CurNode());this.m_nCurNodeDepth=d;this.m_oCurNode=b;return}this.GoTo_Node(this.Get_CurNode())}};CGameTree.prototype.Step_ForwardToEnd=function(){var a=this.m_oCurNode;var b=this.m_nCurNodeDepth;while(this.GoTo_Next()){}if(this.m_oHandler&&this.m_oHandler.GoToNode){this.m_oHandler.GoToNode(this.Get_CurNode());this.m_nCurNodeDepth=b;this.m_oCurNode=a;return}this.GoTo_Node(this.Get_CurNode())};CGameTree.prototype.Pass=function(){if(this.m_oHandler&&this.m_oHandler.Pass){this.m_oHandler.Pass(this.m_nNextMove);return}if(true===this.Add_NewNodeByPos(0,0,this.m_nNextMove)){this.Execute_CurNodeCommands()}};CGameTree.prototype.GoTo_PrevVariant=function(){var b=this.m_oCurNode.Get_Prev();if(null!==b){var d=b.Get_NextCur();var a=b.Get_NextsCount();if(a>1){if(this.Is_CycleThroughVariants()){var c;if(d>0){c=b.Get_Next(d-1)}else{c=b.Get_Next(a-1)}this.GoTo_Node(c)}else{if(d>0){c=b.Get_Next(d-1);this.GoTo_Node(c)}}}}};CGameTree.prototype.GoTo_NextVariant=function(){var b=this.m_oCurNode.Get_Prev();if(null!==b){var d=b.Get_NextCur();var a=b.Get_NextsCount();if(a>1){if(this.Is_CycleThroughVariants()){var c;if(d<a-1){c=b.Get_Next(d+1)}else{c=b.Get_Next(0)}this.GoTo_Node(c)}else{if(d<a-1){var c=b.Get_Next(d+1);this.GoTo_Node(c)}}}}};CGameTree.prototype.GoTo_MainVariant=function(){var b=this.m_oCurNode;while(!b.Is_OnMainVariant()){var a=b.Get_Prev();if(null===a&&b!==this.m_oFirstNode){return}b=a}b.GoTo_MainVariant();this.GoTo_Node(b);if(this.m_oDrawingNavigator){this.m_oDrawingNavigator.Update()}};CGameTree.prototype.GoTo_NodeByXY=function(e,d){if(this.m_oSound){this.m_oSound.Off()}var a=this.m_oCurNode;var b=this.Get_Handler();this.Set_Handler(null);this.Step_BackwardToStart();var c=0;while(c<1000&&BOARD_EMPTY===this.m_oBoard.Get(e,d)){this.Step_Forward(1);c++}if(b&&b.GoToNode){b.GoToNode(this.Get_CurNode());this.GoTo_Node(a);this.Set_Handler(b);return}if(BOARD_EMPTY===this.m_oBoard.Get(e,d)){this.GoTo_Node(a)}if(this.m_oSound){this.m_oSound.On()}};CGameTree.prototype.Set_NextMove=function(a){this.m_nNextMove=a;this.m_oCurNode.Set_NextMove(a)};CGameTree.prototype.Get_FirstNode=function(){return this.m_oFirstNode};CGameTree.prototype.Get_CurNode=function(){return this.m_oCurNode};CGameTree.prototype.Set_CurNode=function(a){this.m_oCurNode=a};CGameTree.prototype.Set_GameCurNode=function(a){this.m_oGameCurNode=a};CGameTree.prototype.Get_GameCurNode=function(){return this.m_oGameCurNode};CGameTree.prototype.Add_Move=function(c,b,a){this.m_oCurNode.Add_Move(c,b,a)};CGameTree.prototype.Add_NewNode=function(b,c){if(!(this.m_nEditingFlags&EDITINGFLAGS_NEWNODE)){return false}var a=new CNode(this);this.m_oCurNode.Add_Next(a,c);this.Set_CurNode(a);this.m_nCurNodeDepth++;if(true===b&&this.m_oDrawingNavigator){this.m_oDrawingNavigator.Create_FromGameTree();this.m_oDrawingNavigator.Update()}return true};CGameTree.prototype.Add_NewNodeByPos=function(b,a,e){var h=Common_XYtoValue(b,a);for(var c=0,g=this.m_oCurNode.Get_NextsCount();c<g;c++){var i=this.m_oCurNode.Get_Next(c);var j=i.Get_Move();var d=j.Get_Type();if(true===this.Is_KifuMode()&&0!==c){return false}if(h===j.Get_Value()&&(e===d&&(BOARD_BLACK===e||BOARD_WHITE===e))){var f=this.m_oCurNode.Get_NextCur();this.m_oCurNode.Set_NextCur(c);this.Set_CurNode(i);this.m_nCurNodeDepth++;if(this.m_oDrawingNavigator&&f!==c){this.m_oDrawingNavigator.Update()}return true}}if(!(this.m_nEditingFlags&EDITINGFLAGS_NEWNODE)){return false}this.Add_NewNode(false,true);this.m_oCurNode.Add_Move(b,a,e);if(this.m_oDrawingNavigator){this.m_oDrawingNavigator.Create_FromGameTree();this.m_oDrawingNavigator.Update()}if(BOARD_EMPTY!==this.m_nTutorMode&&""!==this.m_sTutorText){this.m_oCurNode.Set_Comment(this.m_sTutorText)}return true};CGameTree.prototype.Add_MoveNumber=function(a){this.m_oCurNode.Add_MoveNumber(a)};CGameTree.prototype.AddOrRemove_Stones=function(b,a){this.m_oCurNode.AddOrRemove_Stones(b,a)};CGameTree.prototype.Add_Comment=function(b){var a=this.m_oCurNode.Get_Comment();this.m_oCurNode.Add_Comment(b);if(this.m_oDrawing){this.m_oDrawing.Update_Comments(this.m_oCurNode.Get_Comment())}if(this.m_oDrawingNavigator&&""===a&&""!==b){this.m_oDrawingNavigator.Update()}};CGameTree.prototype.Set_Comment=function(b){var a=this.m_oCurNode.Get_Comment();this.m_oCurNode.Set_Comment(b);if(this.m_oDrawingNavigator&&((""===a&&""!==b)||(""!==a&&""===b))){this.m_oDrawingNavigator.Update()}};CGameTree.prototype.Add_Mark=function(b,a){this.m_oCurNode.Add_Mark(b,a)};CGameTree.prototype.Remove_Mark=function(a){this.m_oCurNode.Add_Mark(ECommand.RM,a)};CGameTree.prototype.Add_TextMark=function(a,b){this.m_oCurNode.Add_TextMark(a,b)};CGameTree.prototype.Add_BlackTimeLeft=function(a){this.m_oCurNode.Add_BlackTimeLeft(a)};CGameTree.prototype.Add_WhiteTimeLeft=function(a){this.m_oCurNode.Add_WhiteTimeLeft(a)};CGameTree.prototype.Remove_CurNode=function(){if(!(this.m_nEditingFlags&EDITINGFLAGS_REMOVE)){return false}var b=this.m_oCurNode.Get_Prev();if(null===b){this.m_oCurNode.Clear();if(this.m_oDrawingNavigator){this.m_oDrawingNavigator.Create_FromGameTree();this.m_oDrawingNavigator.Update()}this.GoTo_Node(this.m_oCurNode);return}for(var c=0,a=b.Get_NextsCount();c<a;c++){if(this.m_oCurNode===b.Get_Next(c)){b.Remove_Next(c);this.Set_CurNode(b);if(this.m_oDrawingNavigator){this.m_oDrawingNavigator.Create_FromGameTree();this.m_oDrawingNavigator.Update()}this.GoTo_Node(b);return}}};CGameTree.prototype.Have_Move=function(){return this.m_oCurNode.Have_Move()};CGameTree.prototype.Is_CurNodeLast=function(){if(0===this.m_oCurNode.Get_NextsCount()){return true}return false};CGameTree.prototype.Execute_CurNodeCommands=function(){this.m_oBoard.Clear_Scores();if(this.m_oDrawingBoard){this.m_oDrawingBoard.Remove_AllMarks();this.Show_Variants()}for(var g=0,e=this.m_oCurNode.Get_CommandsCount();g<e;g++){var a=this.m_oCurNode.Get_Command(g);var m=a.Get_Type();var h=a.Get_Value();var b=a.Get_Count();switch(m){case ECommand.B:var n=Common_ValuetoXY(h);this.Execute_Move(n.X,n.Y,BOARD_BLACK,false);break;case ECommand.W:var n=Common_ValuetoXY(h);this.Execute_Move(n.X,n.Y,BOARD_WHITE,false);break;case ECommand.AB:for(var f=0;f<b;f++){var n=Common_ValuetoXY(h[f]);this.private_SetBoardPoint(n.X,n.Y,BOARD_BLACK,-1)}break;case ECommand.AW:for(var f=0;f<b;f++){var n=Common_ValuetoXY(h[f]);this.private_SetBoardPoint(n.X,n.Y,BOARD_WHITE,-1)}break;case ECommand.AE:for(var f=0;f<b;f++){var n=Common_ValuetoXY(h[f]);this.private_SetBoardPoint(n.X,n.Y,BOARD_EMPTY,-1)}break;case ECommand.PL:this.private_SetNextMove(h);break;case ECommand.CR:if(this.m_oDrawingBoard){for(var f=0;f<b;f++){var n=Common_ValuetoXY(h[f]);this.m_oDrawingBoard.Add_Mark(new CDrawingMark(n.X,n.Y,EDrawingMark.Cr,""))}}break;case ECommand.MA:if(this.m_oDrawingBoard){for(var f=0;f<b;f++){var n=Common_ValuetoXY(h[f]);this.m_oDrawingBoard.Add_Mark(new CDrawingMark(n.X,n.Y,EDrawingMark.X,""))}}break;case ECommand.SQ:if(this.m_oDrawingBoard){for(var f=0;f<b;f++){var n=Common_ValuetoXY(h[f]);this.m_oDrawingBoard.Add_Mark(new CDrawingMark(n.X,n.Y,EDrawingMark.Sq,""))}}break;case ECommand.TR:if(this.m_oDrawingBoard){for(var f=0;f<b;f++){var n=Common_ValuetoXY(h[f]);this.m_oDrawingBoard.Add_Mark(new CDrawingMark(n.X,n.Y,EDrawingMark.Tr,""))}}break;case ECommand.LB:if(this.m_oDrawingBoard){var n=Common_ValuetoXY(h.Pos);this.m_oDrawingBoard.Add_Mark(new CDrawingMark(n.X,n.Y,EDrawingMark.Tx,h.Text))}break;case ECommand.RM:if(this.m_oDrawingBoard){for(var f=0;f<b;f++){var n=Common_ValuetoXY(h[f]);this.m_oDrawingBoard.Remove_Mark(n.X,n.Y)}}break;case ECommand.BL:if(false){this.m_oDrawing.Update_BlackTime(Math.floor(h))}break;case ECommand.WL:if(false){this.m_oDrawing.Update_WhiteTime(Math.floor(h))}break}}if(this.m_oDrawingBoard){if(this.m_oCurNode.Have_Move()){var o=this.m_oCurNode.Get_Move();var d=o.Get_X();var c=o.Get_Y();this.m_oDrawingBoard.Set_LastMoveMark(d,c)}else{this.m_oDrawingBoard.Set_LastMoveMark(-1,-1)}this.m_oDrawingBoard.Draw_Marks();this.m_oCurNode.Draw_ColorMap(this.m_oDrawingBoard)}if(this.m_oDrawing){var i=this.m_oCurNode.Get_Comment();var k=true;if(BOARD_EMPTY!==this.m_nTutorMode){if(-1!==i.indexOf("CHOICE")){i=i.replace("CHOICE","")}if(this.m_oCurNode.Get_NextsCount()<=0){if(-1!==i.indexOf("RIGHT")&&null!==this.m_pTutorRightCallback){this.m_oDrawing.Update_Comments(i.replace("RIGHT",""));this.private_SendCallback(this.m_pTutorRightCallback);k=false}else{if(-1===i.indexOf("RIGHT")&&null!==this.m_pTutorWrongCallback){this.m_oDrawing.Update_Comments(i);this.private_SendCallback(this.m_pTutorWrongCallback);k=false}}}if(k){this.m_oDrawing.Update_Comments(i)}}else{this.m_oDrawing.Update_Comments(i)}}if(this.m_oDrawingNavigator){this.m_oDrawingNavigator.Update_Current(true)}this.Update_InterfaceState();if(this.m_nNextMove===this.m_nTutorMode){if(null!==this.m_nTutorId||null!==this.m_nAutoPlayTimer||null!==this.m_nGifId){return}if(this.m_oCurNode.Get_NextsCount()>=0){var l=this.m_nEditingFlags;var j=this;this.m_nTutorId=setTimeout(function(){j.Reset_EditingFlags();var t=j.Get_CurNode();var q=[];for(var p=0,s=t.Get_NextsCount();p<s;p++){var u=t.Get_Next(p);if(-1!==u.Get_Comment().indexOf("CHOICE")){q.push(p)}}if(q.length>0){var r=Math.max(0,Math.min(q.length-1,Math.floor(Math.random()*q.length)));t.Set_NextCur(q[r])}else{if(t.Get_NextsCount()>0){t.Set_NextCur(0)}}j.Step_Forward(1);j.m_nEditingFlags=l;j.m_nTutorId=null},this.m_nTutorInterval);this.Forbid_All()}}};CGameTree.prototype.Execute_Move=function(d,c,b,a){if(0==d&&0==c){this.private_UpdateNextMove(b);return}if(this.m_oSound&&true!==a){this.m_oSound.Play_PlaceStone()}this.private_SetBoardPoint(d,c,b,this.m_nMovesCount+1,a);this.private_UpdateNextMove(b)};CGameTree.prototype.GoTo_Next=function(a){if(!(this.m_nEditingFlags&EDITINGFLAGS_MOVE)&&true!==a){return false}if(true===this.Is_KifuMode()&&true!==a){return false}if(0===this.m_oCurNode.Get_NextsCount()||-1===this.m_oCurNode.Get_NextCur()){return false}this.Set_CurNode(this.m_oCurNode.Get_Next(this.m_oCurNode.Get_NextCur()));this.m_nCurNodeDepth++;return true};CGameTree.prototype.Show_Variants=function(){if(this.m_oDrawingBoard){this.m_oCurNode.Show_Variants(this.m_eShowVariants,this.m_oDrawingBoard)}};CGameTree.prototype.Set_Sound=function(a){this.m_oSound.Init(a)};CGameTree.prototype.Set_SoundClass=function(a){this.m_oSound=a};CGameTree.prototype.GoTo_Node=function(h,k){if(!(this.m_nEditingFlags&EDITINGFLAGS_MOVE)&&true!==k){return}if(true===this.Is_KifuMode()){return}if(this.m_oHandler&&this.m_oHandler.GoToNode){this.m_oHandler.GoToNode(h);return}this.Stop_AutoPlay();this.Init_Match();this.m_oBoard.Clear();if(this.m_oSound){this.m_oSound.Off()}var c=h.Make_ThisNodeCurrent();this.Set_CurNode(this.m_oFirstNode);while(this.m_oCurNode!=h&&this.m_oCurNode.Get_NextsCount()>0){var d=this.m_oCurNode.Get_CommandsCount();for(var f=0;f<d;f++){var a=this.m_oCurNode.Get_Command(f);var j=a.Get_Type();var g=a.Get_Value();var b=a.Get_Count();switch(j){case ECommand.B:var i=Common_ValuetoXY(g);this.Execute_Move(i.X,i.Y,BOARD_BLACK,true);break;case ECommand.W:var i=Common_ValuetoXY(g);this.Execute_Move(i.X,i.Y,BOARD_WHITE,true);break;case ECommand.AB:for(var e=0;e<b;e++){var i=Common_ValuetoXY(g[e]);this.m_oBoard.Set(i.X,i.Y,BOARD_BLACK,-1)}break;case ECommand.AW:for(var e=0;e<b;e++){var i=Common_ValuetoXY(g[e]);this.m_oBoard.Set(i.X,i.Y,BOARD_WHITE,-1)}break;case ECommand.AE:for(var e=0;e<b;e++){var i=Common_ValuetoXY(g[e]);this.m_oBoard.Set(i.X,i.Y,BOARD_EMPTY,-1)}break}}if(!this.GoTo_Next(k)){break}}if(this.m_oDrawingBoard){this.m_oDrawingBoard.Draw_AllStones()}this.Execute_CurNodeCommands();if(this.m_oDrawingNavigator&&true===c){this.m_oDrawingNavigator.Update()}if(this.m_oSound){this.m_oSound.On()}};CGameTree.prototype.Get_BlackName=function(){return this.m_sBlack};CGameTree.prototype.Get_BlackRating=function(){return this.m_sBlackRating};CGameTree.prototype.Get_WhiteName=function(){return this.m_sWhite};CGameTree.prototype.Get_WhiteRating=function(){return this.m_sWhiteRating};CGameTree.prototype.Get_Board=function(){return this.m_oBoard};CGameTree.prototype.Get_NextMove=function(){return this.m_nNextMove};CGameTree.prototype.Get_MovesCount=function(){return this.m_nMovesCount};CGameTree.prototype.Get_BlackPassCount=function(){return this.m_nBlackPassCount};CGameTree.prototype.Get_WhitePassCount=function(){return this.m_nWhitePassCount};CGameTree.prototype.Get_CurNodeDepth=function(){return this.m_nCurNodeDepth};CGameTree.prototype.Set_Application=function(a){this.m_sApplication=a;this.Set_Modified(true)};CGameTree.prototype.Get_Application=function(){return this.m_sApplication};CGameTree.prototype.Set_Author=function(a){this.m_sAuthor=a;this.Set_Modified(true)};CGameTree.prototype.Set_Charset=function(a){this.m_sCharset=a;this.Set_Modified(true)};CGameTree.prototype.Get_Charset=function(){return this.m_sCharset};CGameTree.prototype.Set_ShowVariants=function(a){if(a!==this.m_eShowVariants){this.m_eShowVariants=a;this.Show_Variants()}};CGameTree.prototype.Get_ShowVariants=function(){return this.m_eShowVariants};CGameTree.prototype.Set_GameAnnotator=function(a){this.m_sGameAnnotator=a;this.Set_Modified(true)};CGameTree.prototype.Get_GameAnnotator=function(){return this.m_sGameAnnotator};CGameTree.prototype.Set_BlackRating=function(a){this.m_sBlackRating=a;if(this.m_oDrawing){this.m_oDrawing.Update_BlackRank(this.m_sBlackRating)}this.Set_Modified(true)};CGameTree.prototype.Set_BlackTeam=function(a){this.m_sBlackTeam=a;this.Set_Modified(true)};CGameTree.prototype.Get_BlackTeam=function(){return this.m_sBlackTeam};CGameTree.prototype.Set_Copyright=function(a){this.m_sCopyright=a;this.Set_Modified(true)};CGameTree.prototype.Get_Copyright=function(){return this.m_sCopyright};CGameTree.prototype.Set_DateTime=function(a){this.m_sDateTime=a;this.Set_Modified(true)};CGameTree.prototype.Get_DateTime=function(){return this.m_sDateTime};CGameTree.prototype.Set_GameEvent=function(a){this.m_sGameEvent=a;this.Set_Modified(true)};CGameTree.prototype.Get_GameEvent=function(){return this.m_sGameEvent};CGameTree.prototype.Set_GameName=function(a){this.m_sGameName=a;this.Set_Modified(true)};CGameTree.prototype.Get_GameName=function(){return this.m_sGameName};CGameTree.prototype.Get_MatchName=function(){var a=this.Get_GameName();if(""===a){a=this.Get_WhiteName()+"_vs_"+this.Get_BlackName()}if(""===a){a="White_vs_Black"}return a};CGameTree.prototype.Set_GameInfo=function(a){this.m_sGameInfo=a;this.Set_Modified(true)};CGameTree.prototype.Get_GameInfo=function(){return this.m_sGameInfo};CGameTree.prototype.Set_OverTime=function(a){this.m_sOverTime=a;this.Set_Modified(true)};CGameTree.prototype.Get_OverTime=function(){return this.m_sOverTime};CGameTree.prototype.Set_Black=function(a){this.m_sBlack=a;if(this.m_oDrawing){this.m_oDrawing.Update_BlackName(this.m_sBlack)}this.Set_Modified(true)};CGameTree.prototype.Set_GamePlace=function(a){this.m_sGamePlace=a;this.Set_Modified(true)};CGameTree.prototype.Get_GamePlace=function(){return this.m_sGamePlace};CGameTree.prototype.Set_White=function(a){this.m_sWhite=a;if(this.m_oDrawing){this.m_oDrawing.Update_WhiteName(this.m_sWhite)}this.Set_Modified(true)};CGameTree.prototype.Set_Result=function(a){this.m_sResult=a;this.Set_Modified(true)};CGameTree.prototype.Get_Result=function(){return this.m_sResult};CGameTree.prototype.Set_GameRound=function(a){this.m_sGameRound=a;this.Set_Modified(true)};CGameTree.prototype.Get_GameRound=function(){return this.m_sGameRound};CGameTree.prototype.Set_Rules=function(a){this.m_sRules=a;this.Set_Modified(true)};CGameTree.prototype.Get_Rules=function(){return this.m_sRules};CGameTree.prototype.Set_GameSource=function(a){this.m_sGameSource=a;this.Set_Modified(true)};CGameTree.prototype.Get_GameSource=function(){return this.m_sGameSource};CGameTree.prototype.Set_TimeLimit=function(a){this.m_nTimeLimit=a;this.Set_Modified(true)};CGameTree.prototype.Get_TimeLimit=function(){return this.m_nTimeLimit};CGameTree.prototype.Set_GameTranscriber=function(a){this.m_sGameTranscriber=a;this.Set_Modified(true)};CGameTree.prototype.Get_GameTranscriber=function(){return this.m_sGameTranscriber};CGameTree.prototype.Set_WhiteRating=function(a){this.m_sWhiteRating=a;if(this.m_oDrawing){this.m_oDrawing.Update_WhiteRank(this.m_sWhiteRating)}this.Set_Modified(true)};CGameTree.prototype.Set_WhiteTeam=function(a){this.m_sWhiteTeam=a;this.Set_Modified(true)};CGameTree.prototype.Get_WhiteTeam=function(){return this.m_sWhiteTeam};CGameTree.prototype.Set_BoardSize=function(b,e){var a=Math.min(52,Math.max(b,2));var d=Math.min(52,Math.max(e,2));var c=this.m_oBoard.Get_Size();if(a!==c.X||d!==c.Y){this.m_oBoard.Reset_Size(a,d);if(this.m_oDrawingBoard){this.m_oDrawingBoard.On_Resize(true)}}};CGameTree.prototype.Init_Match=function(){this.Set_CurNode(this.m_oFirstNode);this.m_nBlackPassCount=0;this.m_nWhitePassCount=0;this.m_nMovesCount=0;this.m_nCurNodeDepth=0;this.m_nNextMove=BOARD_BLACK};CGameTree.prototype.private_UpdateNextMove=function(a){if(BOARD_BLACK===a){if(this.Is_CurrentMovePass()){this.m_nBlackPassCount++}this.private_SetNextMove(BOARD_WHITE)}else{if(this.Is_CurrentMovePass()){this.m_nWhitePassCount++}this.private_SetNextMove(BOARD_BLACK)}this.m_nMovesCount++};CGameTree.prototype.private_SetBoardPoint=function(e,c,b,d,a){this.m_oBoard.Set(e,c,b,d);if(this.m_oDrawingBoard&&true!==a){this.m_oDrawingBoard.Draw_Sector(e,c,b)}};CGameTree.prototype.private_SetNextMove=function(a){this.m_nNextMove=a};CGameTree.prototype.Update_InterfaceState=function(c){if(this.m_oDrawing){var a=this.m_oInterfaceState;var b=this.m_oCurNode.Get_Prev();a.Backward=null===this.m_oCurNode.Get_Prev()?false:true;a.Forward=this.m_oCurNode.Get_NextsCount()<=0?false:true;if(null!==b){var d=b.Get_NextCur();var e=b.Get_NextsCount();if(this.Is_CycleThroughVariants()){a.NextVariant=e>1?true:false;a.PrevVariant=e>1?true:false}else{a.NextVariant=d<e-1?true:false;a.PrevVariant=d>0?true:false}}else{a.NextVariant=false;a.PrevVariant=false}if(this.m_oDrawingBoard){a.BoardMode=this.m_oDrawingBoard.Get_Mode()}a.TimelinePos=this.private_GetTimeLinePos();this.m_oDrawing.Update_InterfaceState(a);if(this.m_oDrawingBoard){this.m_oDrawing.Update_PassCount(this.Get_BlackPassCount(),this.Get_WhitePassCount())}if(c){this.m_oDrawing.Update_BlackRank(this.m_sBlackRating);this.m_oDrawing.Update_WhiteRank(this.m_sWhiteRating);this.m_oDrawing.Update_BlackName(this.m_sBlack);this.m_oDrawing.Update_WhiteName(this.m_sWhite)}}};CGameTree.prototype.Set_EditingFlags=function(a){if(!a){return}if(true===a.NewNode){this.m_nEditingFlags|=EDITINGFLAGS_NEWNODE}else{if(false===a.NewNode){this.m_nEditingFlags&=EDITINGFLAGS_NEWNODE_NON}}if(true===a.Move){this.m_nEditingFlags|=EDITINGFLAGS_MOVE}else{if(false===a.Move){this.m_nEditingFlags&=EDITINGFLAGS_MOVE_NON}}if(true===a.ChangeBoardMode){this.m_nEditingFlags|=EDITINGFLAGS_BOARDMODE}else{if(false===a.ChangeBoardMode){this.m_nEditingFlags&=EDITINGFLAGS_BOARDMODE_NON}}if(true===a.LoadFile){this.m_nEditingFlags|=EDITINGFLAGS_LOADFILE}else{if(false===a.LoadFile){this.m_nEditingFlags&=EDITINGFLAGS_LOADFILE_NON}}if(true===a.GameInfo){this.m_nEditingFlags|=EDITINGFLAGS_GAMEINFO}else{if(false===a.GameInfo){this.m_nEditingFlags&=EDITINGFLAGS_GAMEINFO_NON}}if(true===a.ViewPort){this.m_nEditingFlags|=EDITINGFLAGS_VIEWPORT}else{if(false===a.ViewPort){this.m_nEditingFlags&=EDITINGFLAGS_VIEWPORT_NON}}if(true===a.RemoveNodes){this.m_nEditingFlags|=EDITINGFLAGS_REMOVE}else{if(false===a.RemoveNodes){this.m_nEditingFlags&=EDITINGFLAGS_REMOVE_NON}}};CGameTree.prototype.Reset_EditingFlags=function(){this.m_nEditingFlags=EDITINGFLAGS_MASK};CGameTree.prototype.Forbid_All=function(){this.m_nEditingFlags=0};CGameTree.prototype.Can_EditGameInfo=function(){return(this.m_nEditingFlags&EDITINGFLAGS_GAMEINFO?true:false)};CGameTree.prototype.Download_PngBoardScreenShot=function(){var b=this.Get_DrawingBoard();if(b){var d=b.Get_FullImage(true);var a=d.toDataURL("image/png");var c=document.createElement("a");c.download="BoardShot.png";c.href="data:image/png;base64"+a;Common.Click(c)}};CGameTree.prototype.Download_GifForCurVariant=function(){var a=[];var b=this.m_oFirstNode;a.push(b);while(b.Get_NextsCount()>0){b=b.Get_Next(b.Get_NextCur());a.push(b)}this.private_DownloadGif(a)};CGameTree.prototype.Download_GifForProblem=function(){var b=[];var e=[];this.m_oFirstNode.Find_RightNodes(e);for(var a=0,f=e.length;a<f;a++){var c=e[a];c.Make_ThisNodeCurrent();var d=this.m_oFirstNode;b.push(d);while(d!==c&&d.Get_NextsCount()>0){d=d.Get_Next(d.Get_NextCur());b.push(d)}}this.private_DownloadGif(b)};CGameTree.prototype.Download_GifBoardScreenShot=function(){this.private_DownloadGif([this.m_oCurNode])};CGameTree.prototype.Abort_DownloadGid=function(){this.m_nGifId=null};CGameTree.prototype.private_DownloadGif=function(l){var k=this.Get_DrawingBoard();if(!k){return}var n=this.m_oCurNode;var q=2000000;var c=k.m_oImageData.W;var o=k.m_oImageData.H;var p=l.length;var a=Math.max(1,Math.ceil(q/c/o));var i=0;var g=null;var j=null;var f=Math.ceil(p/a);var b=(f>5?true:false);var h=true===b?CreateWindow(this.m_oDrawing.Get_MainDiv().id,EWindowType.GifWriter,{Drawing:this.m_oDrawing,GameTree:this}):null;k.Set_BlackWhiteLastMark(true);var d=new CGifWriter();d.Set_Delay(1500);d.Start();var c=0;var o=0;if(null!==h){h.On_Start()}var e=this;this.m_nGifId=true;var m=function(){if(null===e.m_nGifId){k.Set_BlackWhiteLastMark(false);e.GoTo_Node(n,true);return}var w=Math.min(i+a,p);for(;i<w;i++){e.GoTo_Node(l[i],true);oCanvas=k.Get_FullImage(false);oContext=oCanvas.getContext("2d");var G=k.Get_BoardState();var x=G.Stones;var F=G.Marks;if(0===c||0===o){c=oCanvas.width;o=oCanvas.height}if(null===g||null===j){d.Add_ContextFrame(oContext,0,0,c,o,[{X0:0,Y0:0,X1:c,Y1:o}])}else{var y={};for(var t in F){y[t]=F[t]}for(var t in j){if(undefined!==y[t]&&(false===y[t]||false===j[t])){y[t]=false}else{y[t]=j[t]}}for(var t in g){if(g[t]!==x[t]&&false!==y[t]){y[t]=true}}var z=[];for(var t in y){var D=Common_ValuetoXY(t);var C=k.Get_BoardAreaByPosition(D.X,D.Y,k.private_GetSettings_Shadows(),y[t]);if(null!==C){z.push(C)}}if(z.length>0){var v=c,H=o,u=0,E=0;for(var s=0,r=z.length;s<r;s++){var C=z[s];if(C.X0<v){v=C.X0}if(C.Y0<H){H=C.Y0}if(C.X1>u){u=C.X1}if(C.Y1>E){E=C.Y1}}d.Add_ContextFrame(oContext,v,H,u-v,E-H,z)}else{d.Add_ContextFrame(oContext,0,0,c,o,[])}}g=G.Stones;j=G.Marks}if(null!==h){h.On_Progress(Math.min(100,i/p*100))}if(i<p){if(true===b){setTimeout(m,10)}else{m()}}else{if(h){h.On_End()}d.Finish();var B=e.Get_GameName();if(""===B){B=e.Get_WhiteName()+" vs. "+e.Get_BlackName()}if(""===B){B="download"}B+=".gif";var A=new Blob([d.Get_Stream().Get_Bytes()],{type:"image/gif"});Common.SaveAs(A,B);e.m_nGifId=null;k.Set_BlackWhiteLastMark(false);e.GoTo_Node(n,true)}};if(true===b){setTimeout(m,10)}else{m()}};CGameTree.prototype.private_SendCallback=function(a){if(null!==this.m_nGifId){return}if(a){a()}};CGameTree.prototype.Toggle_Sound=function(b,a){g_oGlobalSettings.Set_Sound(b)};CGameTree.prototype.Is_SoundOn=function(){return g_oGlobalSettings.Is_SoundOn()};CGameTree.prototype.Set_LoadUnfinishedFilesOnLastNode=function(a){g_oGlobalSettings.Set_LoadUnfinishedFilesOnLastNode(a)};CGameTree.prototype.Is_LoadUnfinishedFilesOnLastNode=function(){if(this.m_oDrawing&&EDrawingTemplate.Problems===this.m_oDrawing.Get_TemplateType()){return false}return g_oGlobalSettings.Is_LoadUnfinishedFilesOnLastNode()};CGameTree.prototype.Is_ShowTarget=function(){return g_oGlobalSettings.Is_ShowTarget()};CGameTree.prototype.Set_ShowTarget=function(a,b){if(true===b){this.m_oSettings.Set_ShowTarget(a)}else{g_oGlobalSettings.Set_ShowTarget(a)}if(this.m_oDrawingBoard){this.m_oDrawingBoard.Update_Target()}};CGameTree.prototype.Is_CycleThroughVariants=function(){return g_oGlobalSettings.Is_CycleThroughVariants()};CGameTree.prototype.Set_CycleThroughVariants=function(a){g_oGlobalSettings.Set_CycleThroughVariants(a);this.Update_InterfaceState()};CGameTree.prototype.Get_NavigatorLabel=function(){return g_oGlobalSettings.Get_NavigatorLabel()};CGameTree.prototype.Set_NavigatorLabel=function(a){if(a!==this.Get_NavigatorLabel()){g_oGlobalSettings.Set_NavigatorLabel(a);if(this.m_oDrawingNavigator){this.m_oDrawingNavigator.Update()}}};CGameTree.prototype.Get_LoadShowVariants=function(){return g_oGlobalSettings.Get_LoadShowVariants()};CGameTree.prototype.Set_LoadShowVariants=function(a){if(a!==this.Get_LoadShowVariants()){g_oGlobalSettings.Set_LoadShowVariants(a)}};CGameTree.prototype.Is_Unfinished=function(){if(""===this.m_sResult||null===this.m_sResult||undefined===this.m_sResult){return true}return false};CGameTree.prototype.Add_ColorMark=function(c,b,a){this.m_oCurNode.Add_ColorMark(c,b,a);if(this.m_oDrawing){this.m_oDrawing.Update_ColorsCounter()}};CGameTree.prototype.Remove_ColorMark=function(b,a){this.m_oCurNode.Remove_ColorMark(b,a);if(this.m_oDrawing){this.m_oDrawing.Update_ColorsCounter()}};CGameTree.prototype.Remove_AllColorMarks=function(){this.m_oCurNode.Remove_AllColorMarks();if(this.m_oDrawing){this.m_oDrawing.Update_ColorsCounter()}};CGameTree.prototype.Copy_ColorMapFromPrevNode=function(){this.m_oCurNode.Copy_ColorMapFromPrevNode();if(this.m_oDrawingBoard){this.m_oCurNode.Draw_ColorMap(this.m_oDrawingBoard)}if(this.m_oDrawing){this.m_oDrawing.Update_ColorsCounter()}};CGameTree.prototype.Get_StartNode=function(){return this.m_oStartNode};CGameTree.prototype.GoTo_MoveReference=function(w){var r=this.Get_FirstNode();var o=Common.Decode_Base64_UrlSafe(w);var s=new CStreamReader(o,o.length);var d=s.Get_String(4);if("GBMR"!==d){return this.GoTo_Node(r)}var e=s.Get_Short();if(1===e){var h=s.Get_String2();var j=r.Get_NodeById(h);if(null!==j){var t=s.Get_Byte();this.Set_CurNode(j);if(1===t){var n=s.Get_Long();for(var b=0;b<n;b++){if(1!==s.Get_Short()){break}this.Add_NewNode(false,false);var k=s.Get_Long();for(var p=0;p<k;p++){var g=s.Get_Short();var v=s.Get_Long();switch(g){case 16:var c=Common_ValuetoXY(s.Get_Long());this.Add_Move(c.X,c.Y,BOARD_BLACK);break;case 17:var c=Common_ValuetoXY(s.Get_Long());this.Add_Move(c.X,c.Y,BOARD_WHITE);break;case 32:case 33:case 34:var u=BOARD_BLACK;switch(g){case 32:u=BOARD_BLACK;break;case 33:u=BOARD_WHITE;break;case 34:u=BOARD_EMPTY;break}var m=s.Get_Long();var q=[];for(var i=0;i<m;i++){q.push(s.Get_Long())}this.AddOrRemove_Stones(u,q);break;default:s.Skip(v);break}}s.Get_Short();j=this.Get_CurNode();if(this.m_oDrawingNavigator){this.m_oDrawingNavigator.Create_FromGameTree();this.m_oDrawingNavigator.Update()}}}this.GoTo_Node(j,true)}else{this.GoTo_Node(r,true)}}else{if(2===e){var a=s.Get_Long();var f=r;for(var b=0;b<a;b++){var l=s.Get_Long();if(l<0||l>=f.Get_NextsCount()||f.Get_NextsCount()<=0){break}f=f.Get_Next(l)}this.GoTo_Node(f,true)}}};CGameTree.prototype.Make_CurrentVariantMainly=function(){this.m_oFirstNode.Make_CurrentVariantMainly();if(this.m_oDrawingNavigator){this.m_oDrawingNavigator.Create_FromGameTree();this.m_oDrawingNavigator.Update();this.m_oDrawingNavigator.Update_Current(true)}};CGameTree.prototype.Move_Variant=function(a){this.m_oCurNode.Move_Variant(a);if(this.m_oDrawingNavigator){this.m_oDrawingNavigator.Create_FromGameTree();this.m_oDrawingNavigator.Update();this.m_oDrawingNavigator.Update_Current(true)}};CGameTree.prototype.Toggle_Rulers=function(){if(this.m_oDrawingBoard){this.m_oDrawingBoard.Set_Rulers(!this.m_oDrawingBoard.Get_Rulers())}};CGameTree.prototype.Set_Handler=function(a){this.m_oHandler=a};CGameTree.prototype.Get_Handler=function(){return this.m_oHandler};CGameTree.prototype.GoTo_NodeById=function(a){var c=this.Get_FirstNode();var b=c.Get_NodeById(a);if(null!==b){this.GoTo_Node(b)}};CGameTree.prototype.GoTo_NodeByMoveNumber=function(a){var c=this.Get_FirstNode();var b=c.Get_NodeByMoveNumber(a);if(null!==b){this.GoTo_Node(b)}};CGameTree.prototype.Get_DivHeightByWidth=function(a){if(this.m_oDrawing){return this.m_oDrawing.Get_DivHeightByWidth(a)}return 0};CGameTree.prototype.Set_Modified=function(a){this.m_bModified=a};CGameTree.prototype.Is_Modified=function(){return this.m_bModified};CGameTree.prototype.Get_LocalSettings=function(){return this.m_oSettings};CGameTree.prototype.Set_LocalColorScheme=function(b){var a=this.m_oSettings.Set_ColorScheme(b);if(true===a.Board&&this.m_oDrawingBoard){this.m_oDrawingBoard.Update_Size(true)}if(this.m_oDrawingNavigator&&true===a.Navigator){this.m_oDrawingNavigator.Update_All()}};CGameTree.prototype.Get_LogicBoardForKifu=function(){var a=this.m_bKifuMode;if(true===a){this.m_bKifuMode=false}var b=this.Get_CurNode();var d=this.Get_FirstNode();this.GoTo_Node(d);var c=new CKifuLogicBoard();c.Load_FromNode(this.Get_Board(),d);this.GoTo_Node(b);if(true===a){this.m_bKifuMode=true}return c};CGameTree.prototype.Start_KifuMode=function(){this.m_nKifuEditFlags=this.m_nEditingFlags;this.Forbid_All();this.Set_EditingFlags({Move:true});this.Set_ShowVariants(EShowVariants.None);this.GoTo_MainVariant();this.m_bKifuMode=true;if(this.m_oDrawing){this.m_oDrawing.Update_KifuMode()}};CGameTree.prototype.Stop_KifuMode=function(){this.m_nEditingFlags=this.m_nKifuEditFlags;this.m_bKifuMode=false;if(this.m_oDrawing){this.m_oDrawing.Update_KifuMode()}};CGameTree.prototype.Is_KifuMode=function(){return this.m_bKifuMode};CGameTree.prototype.Set_StartNode=function(a){this.m_oStartNode=a};CGameTree.prototype.Get_NodeReference=function(a,d){var b=this.Get_CurNode();d.Make_ThisNodeCurrent();var c=d.Get_Reference(a);b.Make_CurrentVariantMainly();return c};CGameTree.prototype.Is_CurrentMovePass=function(){return this.Get_CurNode().Get_Move().Is_Pass()};"use strict";function CGifWriter(){this.m_pStream=null;this.m_bFirstFrame=true;this.m_pPixels=null;this.m_pColorTable=null;this.m_oColorMap={};this.m_nTranspIndex=0;this.m_sComment=String.fromCharCode(71,101,110,101,114,97,116,101,100,32,98,121,32,103,111,98,97,110,46,111,114,103);this.m_nDelay=0;this.m_pIndexedPixels=null;this.m_nW=0;this.m_nH=0;this.m_nRepeat=0;this.m_nFrameIndex=0}CGifWriter.prototype.Add_ContextFrame=function(c,f,e,a,b,d){if(this.m_bFirstFrame){this.m_nW=c.canvas.width;this.m_nH=c.canvas.height}this.m_pPixels=c.getImageData(0,0,c.canvas.width,c.canvas.height).data;this.private_IndexPixels(f,e,a,b,d);if(this.m_bFirstFrame){this.private_WriteLogicalScreenDescriptor();this.private_WriteColorTable();this.private_WriteAppExt();this.private_WriteCommentExt()}this.private_WriteGraphicControlExt();this.private_WriteImageDescriptor(f,e,a,b);this.private_WriteFrame();this.m_bFirstFrame=false;console.log("Frame "+this.m_nFrameIndex);this.m_nFrameIndex++};CGifWriter.prototype.Set_Delay=function(a){this.m_nDelay=Math.floor(a/10)};CGifWriter.prototype.Start=function(){this.m_pStream=new CStreamWriter();this.m_pStream.Write_String("GIF89a")};CGifWriter.prototype.Finish=function(){this.m_pStream.Write_Byte(59)};CGifWriter.prototype.Get_Stream=function(){return this.m_pStream};CGifWriter.prototype.private_IndexPixels=function(f,d,i,q,o){if(this.m_bFirstFrame){var c="ff0000e0b65ce0b65ce0b65ce0b65ce0b75ce0b75ce1b75ce0b75ce0b75de1b75de1b75de1b85de2b85de2b85de2b85de2b85de3b85de3b85de3b95de3b95de3b95de3b95ee3b95ee3b95ee4b95ee4ba5ee4ba5ee4ba5ee4ba5ee5ba5ee5ba5ee5ba5ee5ba5ee5bb5ee5bb5ee5ba5ee5bb5ee5bb5ee5ba5ee5ba5fe1bc6dddbc75e1bb6ae4bb64e5bb5fe6bb5fe6bb5fe6bb5ee6bb5ee6bb5fe6bb5edeb65cdeb55cdfb55cdeb55cdeb55bdeb45bddb45bddb45bddb45bddb35bddb35bdcb35bdcb35bdbb35ddcb35adcb35adbb35adbb25adbb25adab25adab25adab15ad9b15ad9b15adab159d9b159d9b159d9b059d9b059d8b059d8b059d8af58d8b059d7b059d7af59d7af58d7af58d7ae58d6af58d6ae58d6ae58d5ae58d5ae58d5ae58d4ae5ad4ad58d5ad57d5ad57d4ad57d4ad57d4ac57d3ac57d4ac57d4ac57d3ac57d3ac57d3ac57d2ac57d2ac57d3ab56d2ab56d2ab56d2ab56d2ab56d2aa56d1aa56d1aa56d1aa56d1aa55d0aa55cfa956d0a955cfa855cfa855cba554c9a65bbea87ac5b38cd5c197cdc4b0e2d0aaead6abeed9adf1dcaef3ddaff3ddaffaf0dbfefefefdfdfdfafafaf8f8f8f5f5f5f1f1f1eeeeeeebebebe8e8e8e4e4e4e1e1e1dedededadadad6d6d6d3d3d3d0d0d0d0d0d0cfcfcfcecececececdcdcdcdcdcdcccfccc5cccbcbcacacacacac9c8c8c8cac8c3c7c7c7c6c6c5c4c4c4c3c3c2c2c1c1c0c0c0bfbebebdbdbdbbbbbab3b3b2bcb6a9b4ad9da7a49d9c9c9c9494948e8e8e8888888282827c7c7c7474746e6e6e6767677b756aa39370b99a59c29e50c09c4ebc994db9964bb6944ab29149af8e48ac8b47a88945a68744a28443a082429d7f40997c3f967a3d91753b876e387a6434735d2f6f5b2e6b572c64522a6359435e5e5e5757575050504a4a4a404040363636413c31524324423821352d1a2c2c2c2725212222221f1d191c171016161413131212121112111111111111111011101010101010100f0f0f0f0f0f0f0f0e0e0e0e0d0d0d0d0d0d0d0c0c0b0b0b0a0909090d0a07640909ef02023e0000000000000000000000000000";this.private_LoadColorTableFromString(c)}this.m_pIndexedPixels=[];var h=this.m_oColorMap;var j=this.m_pPixels;for(var p=d;p<d+q;p++){for(var s=f;s<f+i;s++){var m=(s-f)+(p-d)*i;if(true===this.private_IsPointInFrameAreas(s,p,o)){var k=(s+p*this.m_nW)*4;var a=j[k+0]&255;var l=j[k+1]&255;var n=j[k+2]&255;var e=a<<16|l<<8|n;if(undefined===h[e]){h[e]=this.private_FindBestColorIndex(a,l,n)}this.m_pIndexedPixels[m]=h[e]}else{this.m_pIndexedPixels[m]=this.m_nTranspIndex}}}};CGifWriter.prototype.private_IsPointInFrameAreas=function(f,e,c){for(var a=0,b=c.length;a<b;a++){var d=c[a];if(f>=d.X0&&f<=d.X1&&e>=d.Y0&&e<=d.Y1){return true}}return false};CGifWriter.prototype.private_FindBestColorIndex=function(c,h,n){var l=this.m_pColorTable;var m=0;var e=16777216;for(var d=1;d<256;d++){var k=d*3;var i=c-(l[k+0]&255);var a=h-(l[k+1]&255);var f=n-(l[k+2]&255);var j=i*i+a*a+f*f;if(j<e){e=j;m=d}}return m};CGifWriter.prototype.private_WriteLogicalScreenDescriptor=function(){this.m_pStream.Write_Short(this.m_nW);this.m_pStream.Write_Short(this.m_nH);this.m_pStream.Write_Byte(247);this.m_pStream.Write_Byte(0);this.m_pStream.Write_Byte(0)};CGifWriter.prototype.private_WriteColorTable=function(){this.m_pStream.Write_Bytes(this.m_pColorTable);var a=(3*256)-this.m_pColorTable.length;for(var b=0;b<a;b++){this.m_pStream.Write_Byte(0)}};CGifWriter.prototype.private_WriteAppExt=function(){this.m_pStream.Write_Byte(33);this.m_pStream.Write_Byte(255);this.m_pStream.Write_Byte(11);this.m_pStream.Write_String("NETSCAPE2.0");this.m_pStream.Write_Byte(3);this.m_pStream.Write_Byte(1);this.m_pStream.Write_Short(this.m_nRepeat);this.m_pStream.Write_Byte(0)};CGifWriter.prototype.private_WriteGraphicControlExt=function(){this.m_pStream.Write_Byte(33);this.m_pStream.Write_Byte(249);this.m_pStream.Write_Byte(4);this.m_pStream.Write_Byte(5);this.m_pStream.Write_Short(this.m_nDelay);this.m_pStream.Write_Byte(this.m_nTranspIndex);this.m_pStream.Write_Byte(0)};CGifWriter.prototype.private_WriteCommentExt=function(){this.m_pStream.Write_Byte(33);this.m_pStream.Write_Byte(254);this.m_pStream.Write_Byte(this.m_sComment.length);this.m_pStream.Write_String(this.m_sComment);this.m_pStream.Write_Byte(0)};CGifWriter.prototype.private_WriteImageDescriptor=function(d,c,a,b){this.m_pStream.Write_Byte(44);this.m_pStream.Write_Short(undefined!==d?d:0);this.m_pStream.Write_Short(undefined!==c?c:0);this.m_pStream.Write_Short(undefined!==a?a:this.m_nW);this.m_pStream.Write_Short(undefined!==b?b:this.m_nH);this.m_pStream.Write_Byte(0)};CGifWriter.prototype.private_WriteFrame=function(){var a=new CLZWEncoder(this.m_nW,this.m_nH,this.m_pIndexedPixels,8);a.Encode(this.m_pStream)};CGifWriter.prototype.private_LoadColorTableFromString=function(d){var c=256*2*3;if(c!==d.length){return}var b=256*3;this.m_pColorTable=new Array(b);for(var e=0,a=0;e<b;e+=3,a+=6){this.m_pColorTable[e+0]=parseInt(d[a+0]+d[a+1],16);this.m_pColorTable[e+1]=parseInt(d[a+2]+d[a+3],16);this.m_pColorTable[e+2]=parseInt(d[a+4]+d[a+5],16)}};var LZW_EOF=-1;var LZW_HASHSIZE=5003;var LZW_BITS=12;var LZW_MAXBITS=LZW_BITS;var LZW_MAXCODE=1<<LZW_BITS;function CLZWEncoder(a,c,d,b){this.m_nW=a;this.m_nH=c;this.m_pData=d;this.m_nInitCodeSize=Math.max(2,b);this.m_nRemaining=0;this.m_nCurPixel=0;this.m_aHashTable=[];this.m_nInitBits=0;this.m_bClear=false;this.m_nBits=0;this.m_nMaxCode=0;this.m_nEofCode=0;this.m_nFreeEntry=0;this.m_nCurAccum=0;this.m_nCurBits=0;this.m_aMasks=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535];this.m_nCount=0;this.m_aAccum=[]}CLZWEncoder.prototype.Encode=function(a){a.Write_Byte(this.m_nInitCodeSize);this.m_nRemaining=this.m_nW*this.m_nH;this.m_nCurPixel=0;this.private_Compress(this.m_nInitCodeSize+1,a);a.Write_Byte(0)};CLZWEncoder.prototype.private_Compress=function(d,i){this.m_nInitBits=d;this.m_bClear=false;this.m_nBits=d;this.m_nMaxCode=this.private_MaxCode(this.m_nBits);var l=1<<(d-1);this.m_nEofCode=l+1;this.m_nFreeEntry=l+2;this.m_nCount=0;var c=this.private_GetNextPixel();var b=0;var a;for(a=LZW_HASHSIZE;a<65536;a*=2){++b}b=8-b;var j=LZW_HASHSIZE;this.private_ClearHash(j);this.private_Output(l,i);var k;var h=[];while(LZW_EOF!==(k=this.private_GetNextPixel())){a=(k<<LZW_MAXBITS)+c;var f=(k<<b)^c;if(a===this.m_aHashTable[f]){c=h[f];continue}else{if(this.m_aHashTable[f]>=0){var e=j-f;var g=false;if(0===f){e=1}do{if((f-=e)<0){f+=j}if(a===this.m_aHashTable[f]){c=h[f];g=true;break}}while(this.m_aHashTable[f]>=0);if(g){continue}}}this.private_Output(c,i);c=k;if(this.m_nFreeEntry<LZW_MAXCODE){h[f]=this.m_nFreeEntry++;this.m_aHashTable[f]=a}else{this.private_ClearHash(LZW_HASHSIZE);this.m_nFreeEntry=l+2;this.m_bClear=true;this.private_Output(l,i)}}this.private_Output(c,i);this.private_Output(this.m_nEofCode,i)};CLZWEncoder.prototype.private_MaxCode=function(a){return(1<<a)-1};CLZWEncoder.prototype.private_GetNextPixel=function(){if(0===this.m_nRemaining){return LZW_EOF}--this.m_nRemaining;return(this.m_pData[this.m_nCurPixel++]&255)};CLZWEncoder.prototype.private_ClearHash=function(b){for(var a=0;a<b;a++){this.m_aHashTable[a]=-1}};CLZWEncoder.prototype.private_Output=function(a,b){this.m_nCurAccum&=this.m_aMasks[this.m_nCurBits];if(this.m_nCurBits>0){this.m_nCurAccum|=(a<<this.m_nCurBits)}else{this.m_nCurAccum=a}this.m_nCurBits+=this.m_nBits;while(this.m_nCurBits>=8){this.private_CharOut((this.m_nCurAccum&255),b);this.m_nCurAccum>>=8;this.m_nCurBits-=8}if(this.m_nFreeEntry>this.m_nMaxCode||this.m_bClear){if(this.m_bClear){this.m_nBits=this.m_nInitBits;this.m_nMaxCode=this.private_MaxCode(this.m_nBits);this.m_bClear=false}else{this.m_nBits++;if(this.m_nBits==LZW_MAXBITS){this.m_nMaxCode=LZW_MAXCODE}else{this.m_nMaxCode=this.private_MaxCode(this.m_nBits)}}}if(a===this.m_nEofCode){while(this.m_nCurBits>0){this.private_CharOut((this.m_nCurAccum&255),b);this.m_nCurAccum>>=8;this.m_nCurBits-=8}this.private_FlushChar(b)}};CLZWEncoder.prototype.private_CharOut=function(a,b){this.m_aAccum[this.m_nCount++]=a;if(this.m_nCount>=254){this.private_FlushChar(b)}};CLZWEncoder.prototype.private_FlushChar=function(a){if(this.m_nCount>0){a.Write_Byte(this.m_nCount);a.Write_Bytes(this.m_aAccum,0,this.m_nCount);this.m_nCount=0}};"use strict;";function CBoardPoint(a,b){this.m_eValue=(undefined===a?BOARD_EMPTY:a);this.m_nNum=(undefined===b?-1:b)}CBoardPoint.prototype.CopyFrom=function(a){this.m_eValue=a.m_eValue;this.m_nNum=a.m_nNum};CBoardPoint.prototype.Clear=function(){this.m_eValue=BOARD_EMPTY;this.m_nNum=-1};CBoardPoint.prototype.Set_Value=function(a){this.m_eValue=a};CBoardPoint.prototype.Set_Num=function(a){this.m_nNum=a};CBoardPoint.prototype.Get_Value=function(){return this.m_eValue};CBoardPoint.prototype.Get_Num=function(){return this.m_nNum};function CAreaScoreCounter(){this.m_oArea={};this.m_nOwner=BOARD_EMPTY}CAreaScoreCounter.prototype.Clear=function(){this.m_oArea={};this.m_nOwner=BOARD_EMPTY};CAreaScoreCounter.prototype.Is_PointIn=function(c,b){var a=Common_XYtoValue(c,b);if(undefined!==this.m_oArea[a]){return true}this.m_oArea[a]=1;return false};CAreaScoreCounter.prototype.Set_Owner=function(a){this.m_nOwner=a};CAreaScoreCounter.prototype.Get_Owner=function(){return this.m_nOwner};CAreaScoreCounter.prototype.Update_Board=function(a,c){var b=(undefined===c?this.m_nOwner:c);for(var e in this.m_oArea){var d=Common_ValuetoXY(e|0);a.Set_ScorePoint(d.X,d.Y,b)}};function CLogicBoard(a,b){this.m_nW=(undefined===a?15:a);this.m_nH=(undefined===b?15:b);this.m_aBoard=null;this.private_InitBoard();this.m_aBoardScores=[];this.m_oArea=new CAreaScoreCounter()}CLogicBoard.prototype.Copy=function(){var b=new CLogicBoard(this.m_nW,this.m_nH);for(var c=0,a=this.m_aBoard.length;c<a;c++){b.m_aBoard[c].CopyFrom(this.m_aBoard[c])}return b};CLogicBoard.prototype.Clear=function(){var b=this.m_nW*this.m_nH;for(var a=0;a<b;a++){this.m_aBoard[a].Clear()}};CLogicBoard.prototype.Reset_Size=function(a,b){this.m_nW=a;this.m_nH=b;this.private_InitBoard()};CLogicBoard.prototype.Get_Size=function(){return{X:this.m_nW,Y:this.m_nH}};CLogicBoard.prototype.Set=function(e,c,b,d){var a=this.private_GetPos(e,c);this.m_aBoard[a].Set_Value(b);if(undefined!==d&&null!==d&&-1!==d){this.m_aBoard[a].Set_Num(d)}};CLogicBoard.prototype.Get=function(b,a){return this.m_aBoard[this.private_GetPos(b,a)].Get_Value()};CLogicBoard.prototype.Get_Num=function(b,a){return this.m_aBoard[this.private_GetPos(b,a)].Get_Num()};CLogicBoard.prototype.Get_HandiPoints=function(){var c=[];var b=this.private_GetLineHandiPoints(this.m_nW);var a=this.private_GetLineHandiPoints(this.m_nH);for(var e=0;e<b.length;e++){for(var d=0;d<a.length;d++){c.push([b[e],a[d]])}}if(((9==this.m_nW||11==this.m_nW)&&1==this.m_nH%2)||((9==this.m_nH||11==this.m_nH)&&1==this.m_nW%2)){c.push([(this.m_nW-1)/2,(this.m_nH-1)/2])}return c};CLogicBoard.prototype.private_GetLineHandiPoints=function(a){var b=[];if(5==a){b=[2]}else{if(7==a){b=[3]}else{if(8==a){b=[2,5]}else{if(9==a){b=[2,6]}else{if(10==a){b=[3,6]}else{if(11==a){b=[3,7]}else{if(a>=12){if(1==a%2){b=[3,(a-1)/2,a-4]}else{b=[3,a-4]}}}}}}}}return b};CLogicBoard.prototype.Is_HandiPoint=function(e,d){if(this.m_nW===this.m_nH){var c=this.Get_HandiPoints();for(var a=0,b=c.length;a<b;a++){if(e-1===c[a][0]&&d-1===c[a][1]){return true}}}return false};CLogicBoard.prototype.private_InitBoard=function(){var b=this.m_nW*this.m_nH;this.m_aBoard=new Array(b);for(var a=0;a<b;a++){this.m_aBoard[a]=new CBoardPoint()}};CLogicBoard.prototype.private_GetPos=function(b,a){return(a-1)*this.m_nW+(b-1)};CLogicBoard.prototype.Clear_Scores=function(){this.m_aBoardScores=[]};CLogicBoard.prototype.Init_CountScores=function(a){this.m_aBoardScores=[];for(var b=1;b<=this.m_nH;b++){for(var c=1;c<=this.m_nW;c++){this.m_aBoardScores[this.private_GetPos(c,b)]=BOARD_EMPTY}}if(true!==a){this.private_CheckAllEmptyAreas(false)}};CLogicBoard.prototype.Set_ScorePoint=function(c,b,a){this.m_aBoardScores[this.private_GetPos(c,b)]=a};CLogicBoard.prototype.Get_ScorePoint=function(b,a){return this.m_aBoardScores[this.private_GetPos(b,a)]};CLogicBoard.prototype.private_CheckEmptyAreaByXY=function(d,b){if(d>this.m_nW||d<1||b>this.m_nH||b<1){return}var c=this.Get(d,b);if(BOARD_EMPTY!==this.Get(d,b)){var a=this.m_oArea.Get_Owner();switch(a){case BOARD_EMPTY:this.m_oArea.Set_Owner(c);break;case BOARD_BLACK:case BOARD_WHITE:if(a!==c){this.m_oArea.Set_Owner(BOARD_DRAW)}break;case BOARD_DRAW:break}return}if(false===this.m_oArea.Is_PointIn(d,b)){this.private_CheckEmptyAreaByXY(d+1,b);this.private_CheckEmptyAreaByXY(d-1,b);this.private_CheckEmptyAreaByXY(d,b+1);this.private_CheckEmptyAreaByXY(d,b-1)}};CLogicBoard.prototype.private_CheckAllEmptyAreas=function(b){for(var a=1;a<=this.m_nH;a++){for(var c=1;c<=this.m_nW;c++){if(BOARD_EMPTY===this.Get(c,a)&&(BOARD_EMPTY===this.Get_ScorePoint(c,a)||(true===b&&BOARD_DRAW===this.Get_ScorePoint(c,a)))){this.m_oArea.Clear();this.private_CheckEmptyAreaByXY(c,a);this.m_oArea.Update_Board(this)}}}};function CKifuLogicBoard(){CKifuLogicBoard.superclass.constructor.call(this,1,1);this.m_aRepetitions=null}CommonExtend(CKifuLogicBoard,CLogicBoard);CKifuLogicBoard.prototype.Load_FromNode=function(i,k){this.m_nW=i.m_nW;this.m_nH=i.m_nH;this.m_aBoard=null;this.private_InitBoard();var c=0;for(var g=0,d=this.m_aBoard.length;g<d;g++){this.m_aBoard[g].CopyFrom(i.m_aBoard[g]);if(c<this.m_aBoard[g].Get_Num()){c=this.m_aBoard[g].Get_Num()}this.m_aBoard[g].Set_Num(-1)}while(k.Get_NextsCount()>0){k=k.Get_Next(k.Get_NextCur());var e=k.Get_CommandsCount();for(var h=0;h<e;h++){var a=k.Get_Command(h);var j=a.Get_Type();var f=a.Get_Value();var b=a.Get_Count();switch(j){case ECommand.B:this.Add_ToKifu(f,BOARD_BLACK,++c);break;case ECommand.W:this.Add_ToKifu(f,BOARD_WHITE,++c);break;case ECommand.AB:for(var g=0;g<b;g++){this.Add_ToKifu(f[g],BOARD_BLACK,-1)}break;case ECommand.AW:for(var g=0;g<b;g++){this.Add_ToKifu(f[g],BOARD_WHITE,-1)}break;case ECommand.AE:for(var g=0;g<b;g++){this.Add_ToKifu(f[g],BOARD_EMPTY,-1)}break}}}};CKifuLogicBoard.prototype.Add_ToKifu=function(d,c,e){if(d<=0){return}var f=Common_ValuetoXY(d);var h=this.Get(f.X,f.Y);if(BOARD_EMPTY!==h){if(-1===e){return}var g=this.private_GetPos(f.X,f.Y);if(!this.m_aRepetitions||this.m_aRepetitions.length===undefined){this.m_aRepetitions=[]}for(var a=0,b=this.m_aRepetitions.length;a<b;++a){if(g===this.m_aRepetitions[a].nPosValue){this.m_aRepetitions[a].aReps.push({nValue:c,nMoveNumber:e});return}}this.m_aRepetitions.push({nPosValue:g,nValue:h,nMoveNumber:this.Get_Num(f.X,f.Y),aReps:[{nValue:c,nMoveNumber:e}]})}else{this.Set(f.X,f.Y,c,e)}};"use strict";function CStreamWriter(){this.m_pData=null;this.m_pImageData=null;this.m_nLength=0;this.m_nPos=0;this.Init()}CStreamWriter.prototype.Init=function(){var a=document.createElement("canvas").getContext("2d");this.m_nLength=1024*1024*5;this.m_pImageData=a.createImageData(this.m_nLength/4,1);this.m_pData=this.m_pImageData.data;this.m_nPos=0};CStreamWriter.prototype.private_CheckSize=function(a){if(this.m_nPos+a>=this.m_nLength){var b=document.createElement("canvas").getContext("2d");var e=this.m_pData;this.m_nLength*=2;this.m_pImageData=b.createImageData(this.m_nLength/4,1);this.m_pData=this.m_pImageData.data;var c=this.m_pData;for(var d=0;d<this.m_pPos;d++){c[d]=e[d]}}};CStreamWriter.prototype.Get_Bytes=function(){var b=new Uint8Array(this.m_nPos);for(var a=0;a<this.m_nPos;a++){b[a]=this.m_pData[a]}return b};CStreamWriter.prototype.Get_CurPosition=function(){return this.m_nPos};CStreamWriter.prototype.Seek=function(a){this.m_nPos=a};CStreamWriter.prototype.Skip=function(a){this.m_nPos+=a};CStreamWriter.prototype.Write_Byte=function(a){this.private_CheckSize(1);this.m_pData[this.m_nPos++]=a};CStreamWriter.prototype.Write_String=function(c){var b=c.length;this.private_CheckSize(b);for(var a=0;a<b;a++){this.m_pData[this.m_nPos++]=c.charCodeAt(a)}};CStreamWriter.prototype.Write_String2=function(a){this.Write_Long(a.length);this.Write_String(a)};CStreamWriter.prototype.Write_Bytes=function(e,f,a){var d=f||0;var b=a||e.length;this.private_CheckSize(b-d);for(var c=d;c<b;c++){this.m_pData[this.m_nPos++]=e[c]}};CStreamWriter.prototype.Write_Short=function(a){this.private_CheckSize(2);this.m_pData[this.m_nPos++]=a&255;this.m_pData[this.m_nPos++]=(a>>8)&255};CStreamWriter.prototype.Write_Long=function(a){this.private_CheckSize(4);this.m_pData[this.m_nPos++]=a&255;this.m_pData[this.m_nPos++]=(a>>8)&255;this.m_pData[this.m_nPos++]=(a>>16)&255;this.m_pData[this.m_nPos++]=(a>>24)&255};function CStreamReader(b,a){this.m_pData=b;this.m_nSize=a;this.m_nPos=0}CStreamReader.prototype.Is_EOF=function(){if(this.m_nPos<this.m_nSize){return false}return true};CStreamReader.prototype.Get_Byte=function(){if(this.m_nPos>=this.m_nSize){return 0}return this.m_pData[this.m_nPos++]};CStreamReader.prototype.Get_Short=function(){if(this.m_nPos+1>=this.m_nSize){return 0}return(this.m_pData[this.m_nPos++]|this.m_pData[this.m_nPos++]<<8)};CStreamReader.prototype.Get_Long=function(){if(this.m_nPos+3>=this.m_nSize){return 0}return(this.m_pData[this.m_nPos++]|this.m_pData[this.m_nPos++]<<8|this.m_pData[this.m_nPos++]<<16|this.m_pData[this.m_nPos++]<<24)};CStreamReader.prototype.Get_String=function(c){if(this.m_nPos+c>this.m_nSize){return""}var b=[];for(var a=0;a<c;a++){b.push(String.fromCharCode(this.m_pData[this.m_nPos+a]))}this.m_nPos+=c;return b.join("")};CStreamReader.prototype.Get_String2=function(){var a=this.Get_Long();return this.Get_String(a)};function CMove(b,a){this.m_nValue=b;this.m_nType=a}CMove.prototype.Get_X=function(){var a=Common_ValuetoXY(this.m_nValue);return a.X};CMove.prototype.Get_Y=function(){var a=Common_ValuetoXY(this.m_nValue);return a.Y};CMove.prototype.Get_Value=function(){return this.m_nValue};CMove.prototype.Get_Type=function(){return this.m_nType};CMove.prototype.Set_Value=function(a){this.m_nValue=a};CMove.prototype.Set_Type=function(a){this.m_nType=a};CMove.prototype.Copy=function(){return new CMove(this.m_nValue,this.m_nType)};CMove.prototype.Is_Pass=function(){if(BOARD_EMPTY!==this.m_nType&&0===this.m_nValue){return true}return false};function CNodeIdCounter(){this.m_nCounter=0}CNodeIdCounter.prototype.Get_NextId=function(){return((++this.m_nCounter)+"")};CNodeIdCounter.prototype.Reset=function(){this.m_nCounter=0};var g_oIdCounter=new CNodeIdCounter();function CNode(a){this.m_sId=g_oIdCounter.Get_NextId();this.m_oGameTree=a;this.m_oHandler=a?a.Get_Handler():null;this.m_aNext=[];this.m_nNextCur=-1;this.m_oPrev=null;this.m_aCommands=[];this.m_oMove=new CMove(0,BOARD_EMPTY);this.m_sComment="";this.m_oNavInfo={X:-1,Y:-1,Num:-1};this.m_bLoaded=false;this.m_oColorMap={};this.m_nMoveNumber=-1;this.m_bOrigin=false}CNode.prototype.Get_Id=function(){return this.m_sId};CNode.prototype.Is_FromFile=function(){return this.m_bLoaded};CNode.prototype.Set_Origin=function(a){this.m_bOrigin=a};CNode.prototype.Is_Origin=function(){return this.m_bOrigin};CNode.prototype.Reset_ToOrigin=function(c){if(true!==this.m_bOrigin){return}for(var b=0;b<this.m_aNext.length;++b){if(true!==this.m_aNext[b].m_bOrigin){this.m_aNext.splice(b,1);b--;if(this.m_nNextCur>=b){this.m_nNextCur--}}}this.m_sComment=c.m_sComment;this.m_nMoveNumber=c.m_nMoveNumber;this.m_aCommands=[];for(var a=0,d=c.m_aCommands.length;a<d;++a){var e=c.m_aCommands[a];this.m_aCommands.push(e.Copy())}this.m_oMove=c.m_oMove.Copy()};CNode.prototype.Get_NodeById=function(c){if(c===this.m_sId){return this}for(var a=0,b=this.Get_NextsCount();a<b;a++){var d=this.m_aNext[a].Get_NodeById(c);if(null!==d){return d}}return null};CNode.prototype.Get_NodeByMoveNumber=function(b){if(0===b){return this}var c=0;var a=this;while(c!==b){if(a.Get_NextsCount()<=0){break}a=a.Get_Next(a.Get_NextCur());if(!a){break}if(a.Have_Move()){c++}}return a};CNode.prototype.Copy_CurrentVariant=function(a){var b=new CNode();b.m_aCommands=this.m_aCommands;if(this.m_aNext.length>0&&this!==a){b.m_aNext[0]=this.m_aNext[this.m_nNextCur].Copy_CurrentVariant(a);b.m_nNextCur=0;b.m_aNext[0].m_oPrev=b}return b};CNode.prototype.Is_Node=function(){return true};CNode.prototype.Clear=function(){this.m_aNext=[];this.m_nNextCur=-1;this.m_aCommands=[];this.m_oMove=new CMove(0,BOARD_EMPTY);this.m_sComment=""};CNode.prototype.Get_Next=function(a){return(undefined!==this.m_aNext[a]?this.m_aNext[a]:this.m_aNext[this.m_nNextCur])};CNode.prototype.Get_NextCur=function(){return this.m_nNextCur};CNode.prototype.Set_NextCur=function(b){var a=(b>=this.m_aNext.length?this.m_aNext.length-1:b);this.m_nNextCur=a};CNode.prototype.Get_NextsCount=function(){return this.m_aNext.length};CNode.prototype.Add_Next=function(a,c,b){a.Set_Prev(this);if(undefined===b&&true===this.m_bOrigin&&true===a.m_bOrigin){b=0;while(b<this.m_aNext.length){if(true!==this.m_aNext[b].m_bOrigin){break}b++}}if(undefined===b){this.m_aNext.push(a);if(true===c||-1===this.m_nNextCur){this.m_nNextCur=this.m_aNext.length-1}}else{b=Math.max(0,Math.min(this.m_aNext.length,b));this.m_aNext.splice(b,0,a);if(true===c||-1===this.m_nNextCur){this.m_nNextCur=b}else{if(this.m_nNextCur>=b){this.m_nNextCur++}}}if(this.m_oGameTree){this.m_oGameTree.Set_Modified(true)}};CNode.prototype.Remove_Next=function(a){this.m_aNext.splice(a,1);if(this.m_nNextCur>=a){this.m_nNextCur--}if(-1===this.m_nNextCur&&this.m_aNext.length>0){this.m_nNextCur=0}if(this.m_oGameTree){this.m_oGameTree.Set_Modified(true)}};CNode.prototype.Get_Prev=function(){return this.m_oPrev};CNode.prototype.Set_Prev=function(a){this.m_oPrev=a};CNode.prototype.Add_Command=function(a){this.m_aCommands.push(a);this.ToHandler_AddCommand(a);if(this.m_oGameTree){this.m_oGameTree.Set_Modified(true)}};CNode.prototype.Get_Command=function(a){return this.m_aCommands[a]};CNode.prototype.Get_CommandsCount=function(){return this.m_aCommands.length};CNode.prototype.Set_Move=function(a){this.m_oMove=a;if(this.m_oGameTree){this.m_oGameTree.Set_Modified(true)}};CNode.prototype.Get_Move=function(){return this.m_oMove};CNode.prototype.Have_Move=function(){if(BOARD_EMPTY===this.m_oMove.Get_Type()){return false}return true};CNode.prototype.Add_Comment=function(a){this.m_sComment+=a;if(this.m_oGameTree){this.m_oGameTree.Set_Modified(true)}};CNode.prototype.Set_Comment=function(a){this.m_sComment=a;if(this.m_oGameTree){this.m_oGameTree.Set_Modified(true)}};CNode.prototype.Get_Comment=function(){return this.m_sComment};CNode.prototype.Get_MainVariantLen=function(){var b=1;var a=this;while(a.Get_NextsCount()>0){b++;a=a.Get_Next(0)}return b};CNode.prototype.GoTo_MainVariant=function(){var a=this;while(a.Get_NextsCount()>0){a.Set_NextCur(0);a=a.Get_Next(0)}};CNode.prototype.Get_LastNodeInMainVariant=function(){var a=this;while(a.Get_NextsCount()>0){a=a.Get_Next(0)}return a};CNode.prototype.Is_First=function(){return(null===this.m_oPrev?true:false)};CNode.prototype.Make_ThisNodeCurrent=function(){var c=false;var e=this.Get_Prev();var d=this;while(null!=e){var b=false;for(var f=0,a=e.Get_NextsCount();f<a;f++){if(d===e.Get_Next(f)){if(f!==e.Get_NextCur()){c=true}e.Set_NextCur(f);b=true;break}}if(!b){return false}d=e;e=e.Get_Prev()}return c};CNode.prototype.Is_OnMainVariant=function(){var a=this;var b=null;while(null!==(b=a.Get_Prev())){if(0!=b.Get_NextCur()){return false}a=b}return true};CNode.prototype.Is_OnCurrentVariant=function(){var a=this;var b=null;while(null!=(b=a.Get_Prev())){if(b.Get_Next(b.Get_NextCur())!=a){return false}a=b}return true};CNode.prototype.Set_NavigatorInfo=function(c,a,b){this.m_oNavInfo.X=c;this.m_oNavInfo.Y=a;this.m_oNavInfo.Num=b};CNode.prototype.Get_NavigatorInfo=function(){return this.m_oNavInfo};CNode.prototype.Add_Move=function(d,c,a){var b=Common_XYtoValue(d,c);this.Add_Command(new CCommand((BOARD_BLACK===a?ECommand.B:ECommand.W),b));if(BOARD_EMPTY===this.m_oMove.Get_Type()){this.m_oMove.Set_Value(b);this.m_oMove.Set_Type(a)}};CNode.prototype.Add_MoveNumber=function(a){this.Add_Command(new CCommand(ECommand.MN,a))};CNode.prototype.AddOrRemove_Stones=function(c,a){var b=(BOARD_BLACK===c?ECommand.AB:(BOARD_WHITE===c?ECommand.AW:ECommand.AE));this.Add_Command(new CCommand(b,Common_CopyArray(a),a.length))};CNode.prototype.Add_Mark=function(b,a){var c=ECommand.Unknown;switch(b){case EDrawingMark.Cr:c=ECommand.CR;break;case EDrawingMark.Lm:return;case EDrawingMark.Sq:c=ECommand.SQ;break;case EDrawingMark.Tr:c=ECommand.TR;break;case EDrawingMark.Tx:c=ECommand.LB;break;case EDrawingMark.X:c=ECommand.MA;break;case ECommand.RM:c=ECommand.RM;break}this.Add_Command(new CCommand(c,Common_CopyArray(a),a.length))};CNode.prototype.Add_TextMark=function(a,b){this.Add_Command(new CCommand(ECommand.LB,{Text:a,Pos:b}))};CNode.prototype.Set_NextMove=function(a){this.Add_Command(new CCommand(ECommand.PL,a))};CNode.prototype.Add_BlackTimeLeft=function(a){this.Add_Command(new CCommand(ECommand.BL,a))};CNode.prototype.Add_WhiteTimeLeft=function(a){this.Add_Command(new CCommand(ECommand.WL,a))};CNode.prototype.Show_Variants=function(c,a){a.Clear_Variants();switch(c){case EShowVariants.Next:this.private_ShowNextVariants(a,-1);break;case EShowVariants.Curr:var b=this.Get_Prev();if(null!==b){b.private_ShowNextVariants(a,this.Get_Move().Get_Value())}break;default:return}};CNode.prototype.Count_NodeNumber=function(){var c=1;var a=this;var b=null;while(null!==(b=a.Get_Prev())){c++;a=b}return c};CNode.prototype.private_ShowNextVariants=function(b,e){if(!b){return}for(var g=0,a=this.Get_NextsCount();g<a;g++){var f=this.Get_Next(g);var c=f.Get_Move();if(BOARD_EMPTY!==c.Get_Type()&&e!==c.Get_Value()){var d=Common_ValuetoXY(c.Get_Value());b.Draw_Variant(d.X,d.Y)}}};CNode.prototype.Find_RightNodes=function(b){if(-1!==this.m_sComment.indexOf("RIGHT")){b.push(this)}for(var a=0,c=this.Get_NextsCount();a<c;a++){this.Get_Next(a).Find_RightNodes(b)}};CNode.prototype.Add_ColorMark=function(c,b,a){this.m_oColorMap[Common_XYtoValue(c,b)]=a;if(this.m_oGameTree){this.m_oGameTree.Set_Modified(true)}};CNode.prototype.Remove_ColorMark=function(b,a){delete this.m_oColorMap[Common_XYtoValue(b,a)];if(this.m_oGameTree){this.m_oGameTree.Set_Modified(true)}};CNode.prototype.Remove_AllColorMarks=function(){this.m_oColorMap={};if(this.m_oGameTree){this.m_oGameTree.Set_Modified(true)}};CNode.prototype.Draw_ColorMap=function(a){a.Clear_AllColorMarks();for(var b in this.m_oColorMap){a.m_oColorMarks[b]=this.m_oColorMap[b]}a.Draw_AllColorMarks()};CNode.prototype.Copy_ColorMapFromPrevNode=function(){this.m_oColorMap={};if(null!==this.m_oPrev){var b=this.m_oPrev.m_oColorMap;for(var a in b){this.m_oColorMap[a]=b[a].Copy()}}if(this.m_oGameTree){this.m_oGameTree.Set_Modified(true)}};CNode.prototype.Get_ColorTable=function(a){for(var d in this.m_oColorMap){var e=this.m_oColorMap[d].ToLong();a[e]=true}for(var c=0,b=this.Get_NextsCount();c<b;c++){this.m_aNext[c].Get_ColorTable(a)}};CNode.prototype.Make_CurrentVariantMainly=function(){var c=this;var b=this.Get_NextCur();var a=this.Get_Next(b);while(null!==a&&undefined!==a){if(0!==b){c.m_aNext.splice(b,1);c.m_aNext.splice(0,0,a);c.Set_NextCur(0)}c=a;b=c.Get_NextCur();a=c.Get_Next(b)}};CNode.prototype.Move_Variant=function(c){var e=this;var d=this.Get_Prev();while(null!==d&&undefined!==d){var b=d.Get_NextsCount();if(d.Get_NextsCount()>1){for(var a=0;a<b;++a){if(e===d.Get_Next(a)){if(c>0){if(a>0){d.m_aNext.splice(a,1);d.m_aNext.splice(a-1,0,e);d.Set_NextCur(a-1)}}else{if(a<b-1){d.m_aNext.splice(a,1);d.m_aNext.splice(a+1,0,e);d.Set_NextCur(a+1)}}break}}return}e=d;d=d.Get_Prev()}};CNode.prototype.Get_Reference=function(t){var g=this;var b=g;var u=new CStreamWriter();u.Write_String("GBMR");if(false!==t){while(!g.Is_FromFile()){var i=g.Get_Prev();if(null===i){return""}g=i}u.Write_Short(1);u.Write_String2(g.Get_Id());if(g!==b){u.Write_Byte(1);var p=[];var j=b;while(j!==g){p.splice(0,0,j);j=j.Get_Prev()}u.Write_Long(p.length);for(var c=0,d=p.length;c<d;c++){var k=p[c];u.Write_Short(1);var s=u.Get_CurPosition();u.Skip(4);var m=0;for(var n=0,h=k.Get_CommandsCount();n<h;n++){var q=k.Get_Command(n);var f=q.Get_Type();var e=q.Get_Value();var o=q.Get_Count();switch(f){case ECommand.B:u.Write_Short(16);u.Write_Long(4);u.Write_Long(e);m++;break;case ECommand.W:u.Write_Short(17);u.Write_Long(4);u.Write_Long(e);m++;break;case ECommand.AB:case ECommand.AW:case ECommand.AE:switch(f){case ECommand.AB:u.Write_Short(32);break;case ECommand.AW:u.Write_Short(33);break;case ECommand.AE:u.Write_Short(34);break}u.Write_Long(4*(o+1));u.Write_Long(o);for(var l=0;l<o;l++){u.Write_Long(e[l])}m++;break}}var a=u.Get_CurPosition();u.Seek(s);u.Write_Long(m);u.Seek(a);u.Write_Short(0)}}else{u.Write_Byte(0)}}else{u.Write_Short(2);var r=u.Get_CurPosition();u.Skip(4);var g=this.Get_FirstNode();var d=0;while(g!==b&&g.Get_NextsCount()>0){d++;u.Write_Long(g.Get_NextCur());g=g.Get_Next()}var a=u.Get_CurPosition();u.Seek(r);u.Write_Long(d);u.Seek(a)}return Common.Encode_Base64_UrlSafe(u.Get_Bytes())};CNode.prototype.Get_FirstNode=function(){var a=this;while(null!==a.Get_Prev()){a=a.Get_Prev()}return a};CNode.prototype.Get_MoveNumber=function(){if(-1===this.m_nMoveNumber){var b=0;var c=this;var a=c.Get_Prev();if(c.Have_Move()){b++}while(null!==a){c=a;a=c.Get_Prev();if(c.Have_Move()){b++}}this.m_nMoveNumber=b}return this.m_nMoveNumber};CNode.prototype.Have_ChildNodeWithMove=function(h,g,b){if(b!==BOARD_BLACK&&b!==BOARD_WHITE){return -1}var f=Common_XYtoValue(h,g);for(var a=0,c=this.Get_NextsCount();a<c;++a){var e=this.Get_Next(a);var d=e.Get_Move();if(f===d.Get_Value()&&b==d.Get_Type()){return a}}return -1};CNode.prototype.ToHandler_AddCommand=function(){if(this.m_oHandler&&this.m_oHandler.Add_NodeCommand){this.m_oHandler.Add_NodeCommand(this.Get_Id(),Command.To_String())}};CNode.prototype.FromHandler_AddCommand=function(a){var b=new CCommand();b.From_String(a);this.m_aCommands.push(b)};CNode.prototype.ToHandler_UpdateNexts=function(){if(!(this.m_oHandler&&this.m_oHandler.Update_NodeNexts)){return}var a=[];for(var c=0,b=this.m_aNext.length;c<b;++c){a.push(this.m_aNext[c].Get_Id())}this.m_oHandler.Update_NodeNexts(this.Get_Id(),a)};CNode.prototype.FromHandler_UpdateNexts=function(a){};var g_nSgfReaderCharCodeOffsetLo="a".charCodeAt(0)-1;var g_nSgfReaderCharCodeOffsetHi="A".charCodeAt(0)-1;var g_nSgfReaderCharCode_a="a".charCodeAt(0);var g_nSgfReaderCharCode_z="z".charCodeAt(0);var g_nSgfReaderCharCode_A="A".charCodeAt(0);var g_nSgfReaderCharCode_Z="Z".charCodeAt(0);var ESgfEncoding={None:0,UTF8:1};function CSgfReader(a){this.m_oGameTree=a;this.m_sSGF=[];this.m_nPos=0;this.m_nVariantDepth=0;this.m_arrVariant=[];this.m_bValidNode=true;this.m_nLength=0;this.m_oViewPort={X0:100,Y0:100,X1:-1,Y1:-1};this.m_eEncoding=ESgfEncoding.None;this.m_oColorTable=null}CSgfReader.prototype.Load=function(b){if(undefined!==b&&""!==b){this.private_Init();this.private_Normalize(b);if(!this.private_Parse()&&this.m_oGameTree&&this.m_oGameTree.Get_Drawing()){var c=this.m_oGameTree;var a=c.Get_Drawing();CreateWindow(a.Get_MainDiv().id,EWindowType.Error,{GameTree:c,Drawing:a,ErrorText:"File cannot be read. Invalid SGF file.",W:275,H:80})}}};CSgfReader.prototype.private_Init=function(){this.m_sSGF=[];this.m_nPos=0;this.m_nVariantDepth=0;this.m_arrVariant=[];this.m_bValidNode=true;this.m_nLength=0};CSgfReader.prototype.private_Normalize=function(b){var c=0;var f=b.length;var e=[];var a=false;while(c<f){if(a||b.charCodeAt(c)>32){e.push(b.charAt(c))}if(e.length>=3&&"["==e[e.length-1]){var d=e[e.length-3]+e[e.length-2];if(("C"==e[e.length-2]&&"UC"!=d)||"AN"==d||"BR"==d||"BT"==d||"CP"==d||"DT"==d||"EV"==d||"GN"==d||"GC"==d||"ON"==d||"OT"==d||"PB"==d||"PC"==d||"PW"==d||"RE"==d||"RO"==d||"RU"==d||"SO"==d||"TM"==d||"US"==d||"WR"==d||"WT"==d){a=true}}else{if(a&&e.length>=1&&"]"==e[e.length-1]){if(e.length<2||"\\"!=e[e.length-2]){a=false}}}c++}this.m_sSGF=e;this.m_nLength=this.m_sSGF.length};CSgfReader.prototype.private_Parse=function(){this.m_oGameTree.Reset();if("("===this.m_sSGF[0]&&";"===this.m_sSGF[1]){this.m_nPos++;while(this.m_nPos<this.m_nLength&&(")"!==this.m_sSGF[this.m_nPos]||0!==this.m_nVariantDepth)){var a=this.m_sSGF[this.m_nPos];if(";"===a){if(1!=this.m_nPos){this.m_oGameTree.Add_NewNode(false,false)}else{this.m_oGameTree.Set_CurNode(this.m_oGameTree.Get_FirstNode())}this.m_oGameTree.m_oCurNode.m_bLoaded=true;if(!this.private_ReadNode()){return false}}else{if("("===a){this.m_arrVariant[this.m_nVariantDepth]=this.m_oGameTree.Get_CurNode();this.m_nVariantDepth++;this.m_nPos++}else{if(")"===a){this.m_nVariantDepth--;this.m_oGameTree.Set_CurNode(this.m_arrVariant[this.m_nVariantDepth]);this.m_nPos++}else{return false}}}}}else{return false}return true};CSgfReader.prototype.private_ReadNode=function(){this.m_nPos++;var b=this.m_sSGF[this.m_nPos];var a=this.m_sSGF[this.m_nPos+1];while(undefined!==b&&")"!==b&&";"!==b&&"("!==b){switch(b){case"A":switch(a){case"B":this.private_ReadAddOrRemoveStone(BOARD_BLACK);break;case"E":this.private_ReadAddOrRemoveStone(BOARD_EMPTY);break;case"W":this.private_ReadAddOrRemoveStone(BOARD_WHITE);break;case"N":this.private_ReadAN();break;case"P":this.private_ReadAP();break;default:this.private_ReadUnknown();break}break;case"B":switch(a){case"[":this.private_ReadMove(BOARD_BLACK);break;case"R":this.private_ReadBR();break;case"T":this.private_ReadBT();break;case"L":this.private_ReadBL();break;default:this.private_ReadUnknown();break}break;case"C":switch(a){case"[":this.private_ReadComments();break;case"A":this.private_ReadCA();break;case"P":this.private_ReadCP();break;case"R":this.private_ReadMark(EDrawingMark.Cr);break;case"T":this.private_ReadCT();break;case"M":this.private_ReadCM();break;default:this.private_ReadUnknown();break}break;case"D":switch(a){case"T":this.private_ReadDT();break;default:this.private_ReadUnknown();break}break;case"E":switch(a){case"V":this.private_ReadEV();break;default:this.private_ReadUnknown();break}break;case"F":switch(a){case"F":this.private_ReadFF();break;default:this.private_ReadUnknown();break}break;case"G":switch(a){case"N":this.private_ReadGN();break;case"C":this.private_ReadGC();break;case"M":this.private_ReadGM();break;default:this.private_ReadUnknown();break}break;case"H":switch(a){case"A":this.private_ReadHA();break;default:this.private_ReadUnknown();break}break;case"K":switch(a){default:this.private_ReadUnknown();break}break;case"L":switch(a){case"B":this.private_ReadLB();break;default:this.private_ReadUnknown();break}break;case"M":switch(a){case"A":this.private_ReadMark(EDrawingMark.X);break;default:this.private_ReadUnknown();break}break;case"O":switch(a){case"N":this.private_ReadON();break;case"T":this.private_ReadOT();break;default:this.private_ReadUnknown();break}break;case"P":switch(a){case"B":this.private_ReadPB();break;case"C":this.private_ReadPC();break;case"W":this.private_ReadPW();break;case"L":this.private_ReadPL();break;default:this.private_ReadUnknown();break}break;case"R":switch(a){case"E":this.private_ReadRE();break;case"O":this.private_ReadRO();break;case"U":this.private_ReadRU();break;default:this.private_ReadUnknown();break}break;case"S":switch(a){case"Q":this.private_ReadMark(EDrawingMark.Sq);break;case"T":this.private_ReadST();break;case"Z":this.private_ReadSZ();break;case"O":this.private_ReadSO();break;default:this.private_ReadUnknown();break}break;case"T":switch(a){case"R":this.private_ReadMark(EDrawingMark.Tr);break;case"M":this.private_ReadTM();break;case"B":this.private_ReadTerritory(BOARD_BLACK);break;case"W":this.private_ReadTerritory(BOARD_WHITE);break;default:this.private_ReadUnknown();break}break;case"U":switch(a){case"S":this.private_ReadUS();break;default:this.private_ReadUnknown();break}break;case"W":switch(a){case"[":this.private_ReadMove(BOARD_WHITE);break;case"R":this.private_ReadWR();break;case"T":this.private_ReadWT();break;case"L":this.private_ReadWL();break;default:this.private_ReadUnknown();break}break;default:this.private_ReadUnknown();break}if(!this.m_bValidNode){return false}b=this.m_sSGF[this.m_nPos];a=this.m_sSGF[this.m_nPos+1]}return true};CSgfReader.prototype.private_ReadSimpleText=function(b){if(undefined===b){b="]"}var a="";while(undefined!==this.m_sSGF[this.m_nPos]&&b!==this.m_sSGF[this.m_nPos]){a+=this.m_sSGF[this.m_nPos];this.m_nPos++}if(undefined===this.m_sSGF[this.m_nPos]){this.m_bValidNode=false}this.m_nPos++;return a};CSgfReader.prototype.private_ReadReal=function(b){var a=parseFloat(this.private_ReadSimpleText(b));return isNaN(a)?0:a};CSgfReader.prototype.private_ReadNumber=function(b){var a=parseInt(this.private_ReadSimpleText(b));return isNaN(a)?0:a};CSgfReader.prototype.private_ReadUnknown=function(){while(true){while(undefined!==this.m_sSGF[this.m_nPos]&&"]"!==this.m_sSGF[this.m_nPos]&&this.m_nPos<this.m_nLength){this.m_nPos++;while("]"===this.m_sSGF[this.m_nPos]&&"\\"===this.m_sSGF[this.m_nPos-1]){this.m_nPos++}}this.m_nPos++;if("["!==this.m_sSGF[this.m_nPos]){break}}};CSgfReader.prototype.private_LetterToNumber=function(b){var a=b.charCodeAt(0);if(a>=g_nSgfReaderCharCode_a&&a<=g_nSgfReaderCharCode_z){return a-g_nSgfReaderCharCodeOffsetLo}else{if(a>=g_nSgfReaderCharCode_A&&a<=g_nSgfReaderCharCode_Z){return a-g_nSgfReaderCharCodeOffsetHi+26}}this.m_bValidNode=false;return 0};CSgfReader.prototype.private_ReadAddOrRemoveStone=function(h){this.m_nPos+=3;var j=[];if("]"===this.m_sSGF[this.m_nPos]){return}while(true){var f=this.m_sSGF[this.m_nPos];this.m_nPos++;var d=this.m_sSGF[this.m_nPos];this.m_nPos++;var e=this.private_LetterToNumber(f);var c=this.private_LetterToNumber(d);if(":"===this.m_sSGF[this.m_nPos]){this.m_nPos++;f=this.m_sSGF[this.m_nPos];this.m_nPos++;d=this.m_sSGF[this.m_nPos];this.m_nPos++;var g=this.private_LetterToNumber(f);var i=this.private_LetterToNumber(d);for(var a=c;a<=i;a++){for(var b=e;b<=g;b++){this.private_RegisterPoint(b,a);j.push(Common_XYtoValue(b,a))}}}else{this.private_RegisterPoint(e,c);j.push(Common_XYtoValue(e,c))}if("]"!==this.m_sSGF[this.m_nPos]){this.m_bValidNode=false;return}this.m_nPos++;if("["!==this.m_sSGF[this.m_nPos]){break}this.m_nPos++}this.m_oGameTree.AddOrRemove_Stones(h,j)};CSgfReader.prototype.private_ReadAN=function(){this.m_nPos+=3;this.m_oGameTree.Set_GameAnnotator(this.private_ReadSimpleText())};CSgfReader.prototype.private_ReadAP=function(){this.m_nPos+=3;this.m_oGameTree.Set_Application(this.private_ReadSimpleText())};CSgfReader.prototype.private_ReadMove=function(a){this.m_nPos+=2;if("]"==this.m_sSGF[this.m_nPos]){this.m_oGameTree.Add_Move(0,0,a)}else{var e=this.m_sSGF[this.m_nPos];this.m_nPos++;var b=this.m_sSGF[this.m_nPos];this.m_nPos++;var d=this.m_oGameTree.Get_Board().Get_Size();if("t"===e&&"t"===b&&d.X<=19&&d.Y<=19){this.m_oGameTree.Add_Move(0,0,a)}else{var f=this.private_LetterToNumber(e);var c=this.private_LetterToNumber(b);this.private_RegisterPoint(f,c);this.m_oGameTree.Add_Move(f,c,a);while("]"!==this.m_sSGF[this.m_nPos]){this.m_nPos++;if(this.m_nPos>=this.m_nLength){this.m_bValidNode=false;break}}}}this.m_nPos++};CSgfReader.prototype.private_ReadBR=function(){this.m_nPos+=3;this.m_oGameTree.Set_BlackRating(this.private_ReadSimpleText())};CSgfReader.prototype.private_ReadBT=function(){this.m_nPos+=3;this.m_oGameTree.Set_BlackTeam(this.private_ReadSimpleText())};CSgfReader.prototype.private_ReadBL=function(){this.m_nPos+=3;this.m_oGameTree.Add_BlackTimeLeft(this.private_ReadReal())};CSgfReader.prototype.private_ReadComments=function(){this.m_nPos+=2;var b="";while("]"!==this.m_sSGF[this.m_nPos]||"\\"===this.m_sSGF[this.m_nPos-1]){if("]"===this.m_sSGF[this.m_nPos+1]&&"\\"===this.m_sSGF[this.m_nPos]){b+="]";this.m_nPos++}else{b+=this.m_sSGF[this.m_nPos]}this.m_nPos++}this.m_nPos++;switch(this.m_eEncoding){case ESgfEncoding.UTF8:b=Common_UTF8_Decode(b);break}var a=this.m_oGameTree.Get_CurNode();if(a){a.Add_Comment(b)}};CSgfReader.prototype.private_ReadCA=function(){this.m_nPos+=3;var a=this.private_ReadSimpleText();this.m_oGameTree.Set_Charset(a)};CSgfReader.prototype.private_ReadCP=function(){this.m_nPos+=3;this.m_oGameTree.Set_Copyright(this.private_ReadSimpleText())};CSgfReader.prototype.private_ReadMark=function(a){this.m_nPos+=3;var j=[];if("]"===this.m_sSGF[this.m_nPos]){return}while(true){var g=this.m_sSGF[this.m_nPos];this.m_nPos++;var e=this.m_sSGF[this.m_nPos];this.m_nPos++;var f=this.private_LetterToNumber(g);var d=this.private_LetterToNumber(e);if(":"===this.m_sSGF[this.m_nPos]){this.m_nPos++;g=this.m_sSGF[this.m_nPos];this.m_nPos++;e=this.m_sSGF[this.m_nPos];this.m_nPos++;var h=this.private_LetterToNumber(g);var i=this.private_LetterToNumber(e);for(var b=d;b<=i;b++){for(var c=f;c<=h;c++){this.private_RegisterPoint(c,b);j.push(Common_XYtoValue(c,b))}}}else{this.private_RegisterPoint(f,d);j.push(Common_XYtoValue(f,d))}if("]"!==this.m_sSGF[this.m_nPos]){this.m_bValidNode=false;return}this.m_nPos++;if("["!==this.m_sSGF[this.m_nPos]){break}this.m_nPos++}this.m_oGameTree.Add_Mark(a,j)};CSgfReader.prototype.private_ReadDT=function(){this.m_nPos+=3;this.m_oGameTree.Set_DateTime(this.private_ReadSimpleText())};CSgfReader.prototype.private_ReadEV=function(){this.m_nPos+=3;this.m_oGameTree.Set_GameEvent(this.private_ReadSimpleText())};CSgfReader.prototype.private_ReadFF=function(){this.private_ReadUnknown()};CSgfReader.prototype.private_ReadGN=function(){this.m_nPos+=3;this.m_oGameTree.Set_GameName(this.private_ReadSimpleText())};CSgfReader.prototype.private_ReadGC=function(){this.m_nPos+=3;this.m_oGameTree.Set_GameInfo(this.private_ReadSimpleText())};CSgfReader.prototype.private_ReadGM=function(){this.m_nPos+=3;var a=this.private_ReadNumber();if(4!==a){this.m_bValidNode=false}};CSgfReader.prototype.private_ReadLB=function(){this.m_nPos+=3;while(true){var d=this.m_sSGF[this.m_nPos];this.m_nPos++;var b=this.m_sSGF[this.m_nPos];this.m_nPos++;var e=this.private_LetterToNumber(d);var c=this.private_LetterToNumber(b);this.m_nPos++;var a="";while("]"!==this.m_sSGF[this.m_nPos]&&this.m_nPos<this.m_nLength){a+=this.m_sSGF[this.m_nPos];this.m_nPos++}this.private_RegisterPoint(e,c);this.m_oGameTree.Add_TextMark(a,Common_XYtoValue(e,c));if("]"!==this.m_sSGF[this.m_nPos]){this.m_bValidNode=false;return}this.m_nPos++;if("["!==this.m_sSGF[this.m_nPos]){break}this.m_nPos++}};CSgfReader.prototype.private_ReadOT=function(){this.m_nPos+=3;this.m_oGameTree.Set_OverTime(this.private_ReadSimpleText())};CSgfReader.prototype.private_ReadPB=function(){this.m_nPos+=3;this.m_oGameTree.Set_Black(this.private_ReadSimpleText())};CSgfReader.prototype.private_ReadPC=function(){this.m_nPos+=3;this.m_oGameTree.Set_GamePlace(this.private_ReadSimpleText())};CSgfReader.prototype.private_ReadPL=function(){this.m_nPos+=3;if("W"===this.private_ReadSimpleText()){this.m_oGameTree.Set_NextMove(BOARD_WHITE)}else{this.m_oGameTree.Set_NextMove(BOARD_BLACK)}};CSgfReader.prototype.private_ReadPW=function(){this.m_nPos+=3;this.m_oGameTree.Set_White(this.private_ReadSimpleText())};CSgfReader.prototype.private_ReadRE=function(){this.m_nPos+=3;this.m_oGameTree.Set_Result(this.private_ReadSimpleText())};CSgfReader.prototype.private_ReadRO=function(){this.m_nPos+=3;this.m_oGameTree.Set_GameRound(this.private_ReadSimpleText())};CSgfReader.prototype.private_ReadRU=function(){this.m_nPos+=3;this.m_oGameTree.Set_Rules(this.private_ReadSimpleText())};CSgfReader.prototype.private_ReadST=function(){this.m_nPos+=3;var a=this.private_ReadNumber();switch(a){case 0:this.m_oGameTree.Set_ShowVariants(EShowVariants.Next);break;case 1:this.m_oGameTree.Set_ShowVariants(EShowVariants.Curr);break;default:this.m_oGameTree.Set_ShowVariants(EShowVariants.None);break}};CSgfReader.prototype.private_ReadSZ=function(){this.m_nPos+=3;var d=this.private_ReadSimpleText();var c=19;var b=19;var a=-1;if(-1==(a=d.indexOf(":"))){c=Math.min(52,Math.max(parseInt(d),2));b=c}else{c=parseInt(d.substr(0,a));b=parseInt(d.substr(a+1,d.length-a-1))}this.m_oGameTree.Set_BoardSize(c,b)};CSgfReader.prototype.private_ReadSO=function(){this.m_nPos+=3;this.m_oGameTree.Set_GameSource(this.private_ReadSimpleText())};CSgfReader.prototype.private_ReadTM=function(){this.m_nPos+=3;this.m_oGameTree.Set_TimeLimit(this.private_ReadSimpleText())};CSgfReader.prototype.private_ReadTerritory=function(h){this.m_nPos+=3;var j=[];if("]"===this.m_sSGF[this.m_nPos]){return}while(true){var f=this.m_sSGF[this.m_nPos];this.m_nPos++;var d=this.m_sSGF[this.m_nPos];this.m_nPos++;var e=this.private_LetterToNumber(f);var c=this.private_LetterToNumber(d);if(":"===this.m_sSGF[this.m_nPos]){this.m_nPos++;f=this.m_sSGF[this.m_nPos];this.m_nPos++;d=this.m_sSGF[this.m_nPos];this.m_nPos++;var g=this.private_LetterToNumber(f);var i=this.private_LetterToNumber(d);for(var a=c;a<=i;a++){for(var b=e;b<=g;b++){j.push(Common_XYtoValue(b,a))}}}else{j.push(Common_XYtoValue(e,c))}if("]"!==this.m_sSGF[this.m_nPos]){this.m_bValidNode=false;return}this.m_nPos++;if("["!==this.m_sSGF[this.m_nPos]){break}this.m_nPos++}};CSgfReader.prototype.private_ReadUS=function(){this.m_nPos+=3;this.m_oGameTree.Set_GameTranscriber(this.private_ReadSimpleText())};CSgfReader.prototype.private_ReadWR=function(){this.m_nPos+=3;this.m_oGameTree.Set_WhiteRating(this.private_ReadSimpleText())};CSgfReader.prototype.private_ReadWT=function(){this.m_nPos+=3;this.m_oGameTree.Set_WhiteTeam(this.private_ReadSimpleText())};CSgfReader.prototype.private_ReadWL=function(){this.m_nPos+=3;this.m_oGameTree.Add_WhiteTimeLeft(this.private_ReadReal())};CSgfReader.prototype.private_RegisterPoint=function(b,a){if(b<this.m_oViewPort.X0){this.m_oViewPort.X0=b}if(b>this.m_oViewPort.X1){this.m_oViewPort.X1=b}if(a<this.m_oViewPort.Y0){this.m_oViewPort.Y0=a}if(a>this.m_oViewPort.Y1){this.m_oViewPort.Y1=a}};CSgfReader.prototype.private_ReadCT=function(){this.m_nPos+=3;var f=this.private_ReadSimpleText();if(""===f){return}var b=Common.Decode_Base64(f);var d=new CStreamReader(b,b.length);var e=d.Get_String(5);if("SGFCT"!==e){return}var c=d.Get_Short();var h=d.Get_Long();this.m_oColorTable=[];for(var a=0;a<h;a++){var g=d.Get_Long();this.m_oColorTable[a]=new CColor(0,0,0,0);this.m_oColorTable[a].FromLong(g)}};CSgfReader.prototype.private_ReadCM=function(){this.m_nPos+=3;var g=this.private_ReadSimpleText();if(""===g){return}var e=Common.Decode_Base64(g);var a=new CStreamReader(e,e.length);var d=a.Get_String(5);if("SGFCM"!==d){return}var c=a.Get_Short();var l=a.Get_Short();var f=a.Get_Short();var k=this.m_oGameTree.Get_CurNode();k.m_oColorMap={};for(var h=0;h<f;h++){for(var j=0;j<l;j++){var i=a.Get_Byte();if(undefined!==this.m_oColorTable[i]&&0!==this.m_oColorTable[i].a){var b=Common_XYtoValue(j+1,h+1);k.m_oColorMap[b]=this.m_oColorTable[i].Copy()}}}};function CFileReaderBase(a){this.m_oGameTree=a;this.m_sFile=[];this.m_nPos=0;this.m_nSize=0}CFileReaderBase.prototype.private_Normalize=function(d){var c=d.length;var b=[];var a=0;while(a<c){b.push(d.charAt(a++))}this.m_nPos=0;this.m_sFile=b;this.m_nSize=this.m_sFile.length};CFileReaderBase.prototype.private_PrepareGameTree=function(){this.m_oGameTree.Reset();this.m_oGameTree.Set_CurNode(this.m_oGameTree.Get_FirstNode());this.m_oGameTree.m_oCurNode.m_bLoaded=true};CFileReaderBase.prototype.private_ReadChar=function(){if(this.m_nPos>=this.m_nSize){return -1}return this.m_sFile[this.m_nPos++]};CFileReaderBase.prototype.private_ReadLine=function(){var a="";var b=null;while(-1!==b&&"\n"!==b){b=this.private_ReadChar();a+=b}return a};CFileReaderBase.prototype.private_IsEOF=function(){if(this.m_nPos>=this.m_nSize){return true}return false};"use strict";function CSgfWriter(){this.m_sFile=null;this.m_oGameTree=null;this.m_oColorTable=null}CSgfWriter.prototype.Write=function(a){this.m_oGameTree=a;this.m_sFile="";this.m_oColorTable=null;this.private_Write(a.Get_FirstNode())};CSgfWriter.prototype.private_WriteString=function(a){this.m_sFile+=a};CSgfWriter.prototype.private_WriteCommandName=function(a){this.private_WriteString(a)};CSgfWriter.prototype.private_WriteMovePos=function(a){if(0!=a){this.private_WritePos(a)}else{this.private_WriteString(String.fromCharCode(91,93))}};CSgfWriter.prototype.private_NumberToCharCode=function(a){if(a<=26){return g_nSgfReaderCharCodeOffsetLo+a}else{return g_nSgfReaderCharCodeOffsetHi+a-26}};CSgfWriter.prototype.private_WritePos=function(b){var a=Common_ValuetoXY(b);this.private_WriteString(String.fromCharCode(91,this.private_NumberToCharCode(a.X),this.private_NumberToCharCode(a.Y),93))};CSgfWriter.prototype.private_WritePos2=function(b){var a=Common_ValuetoXY(b);this.private_WriteString(String.fromCharCode(this.private_NumberToCharCode(a.X),this.private_NumberToCharCode(a.Y)))};CSgfWriter.prototype.private_WritePosArray=function(a){for(var c=0,b=a.length;c<b;c++){this.private_WritePos(a[c])}};CSgfWriter.prototype.private_WriteReal=function(a){this.private_WriteString("["+a+"]")};CSgfWriter.prototype.private_WriteSimpleText=function(a){this.private_WriteString("["+a+"]")};CSgfWriter.prototype.private_WriteCommand=function(b,a){this.private_WriteCommandName(b);this.private_WriteSimpleText(a)};CSgfWriter.prototype.private_WriteNonEmptyCommand=function(b,a){if(a&&""!==a){this.private_WriteCommand(b,a)}};CSgfWriter.prototype.private_WriteGameInfo=function(){var c=this.m_oGameTree;var d=c.Get_Board().Get_Size();this.private_WriteCommand("GM",4);this.private_WriteCommand("FF",4);this.private_WriteCommand("CA","UTF-8");this.private_WriteCommand("AP","Web Renju Board:"+RenjuBoardApi.Get_Version());this.private_WriteCommand("ST",c.Get_ShowVariants());this.private_WriteNonEmptyCommand("RU",c.Get_Rules());this.private_WriteCommand("SZ",d.X==d.Y?d.X:d.X+":"+d.Y);this.private_WriteNonEmptyCommand("TM",c.Get_TimeLimit());this.private_WriteNonEmptyCommand("OT",c.Get_OverTime());this.private_WriteNonEmptyCommand("RE",c.Get_Result());this.private_WriteNonEmptyCommand("GN",c.Get_GameName());this.private_WriteNonEmptyCommand("DT",c.Get_DateTime());this.private_WriteNonEmptyCommand("CP",c.Get_Copyright());this.private_WriteNonEmptyCommand("GC",c.Get_GameInfo());this.private_WriteNonEmptyCommand("PB",c.Get_BlackName());this.private_WriteNonEmptyCommand("BR",c.Get_BlackRating());this.private_WriteNonEmptyCommand("BT",c.Get_BlackTeam());this.private_WriteNonEmptyCommand("PW",c.Get_WhiteName());this.private_WriteNonEmptyCommand("WR",c.Get_WhiteRating());this.private_WriteNonEmptyCommand("WT",c.Get_WhiteTeam());this.private_WriteNonEmptyCommand("EV",c.Get_GameEvent());this.private_WriteNonEmptyCommand("RO",c.Get_GameRound());this.private_WriteNonEmptyCommand("PC",c.Get_GamePlace());this.private_WriteNonEmptyCommand("AN",c.Get_GameAnnotator());this.private_WriteNonEmptyCommand("SO",c.Get_GameSource());this.private_WriteNonEmptyCommand("US",c.Get_GameTranscriber());var b={};this.m_oGameTree.Get_FirstNode().Get_ColorTable(b);var f=1,a=[];for(var e in b){b[e]=f;a[f++]=e|0}if(f>1){b[0]=0;a[0]=0;this.m_oColorTable=b;this.private_WriteColorTable(a)}};CSgfWriter.prototype.private_WriteNode=function(g){this.private_WriteString(";");if(g===this.m_oGameTree.Get_FirstNode()){this.private_WriteGameInfo()}this.private_WriteAddOrRemoveStones(g);this.private_WriteMarks(g);for(var c=0,d=g.Get_CommandsCount();c<d;c++){var f=g.Get_Command(c);var b=f.Get_Type();var a=f.Get_Value();switch(b){case ECommand.AB:break;case ECommand.AW:break;case ECommand.AE:break;case ECommand.B:this.private_WriteCommandName("B");this.private_WriteMovePos(a);break;case ECommand.W:this.private_WriteCommandName("W");this.private_WriteMovePos(a);break;case ECommand.BL:this.private_WriteCommandName("BL");this.private_WriteReal(a);break;case ECommand.WL:this.private_WriteCommandName("WL");this.private_WriteReal(a);break;case ECommand.RM:break;case ECommand.CR:break;case ECommand.MA:break;case ECommand.SQ:break;case ECommand.TR:break;case ECommand.LB:break;case ECommand.PL:this.private_WriteCommandName("PL");this.private_WriteSimpleText(a===BOARD_WHITE?"W":"B");break}}var e=g.Get_Comment();if(""!==e){e=e.replace(new RegExp("]","g"),"\\]");this.private_WriteCommandName("C");this.private_WriteString("[");this.private_WriteString(e);this.private_WriteString("]")}if(null!==this.m_oColorTable){this.private_WriteNodeColorMap(g)}};CSgfWriter.prototype.private_Write=function(e){var c=e.Get_Prev();var d=false;if(null===c||c.Get_NextsCount()>1){d=true}if(d){this.private_WriteString("(")}this.private_WriteNode(e);for(var a=0,b=e.Get_NextsCount();a<b;a++){this.private_Write(e.Get_Next(a))}if(d){this.private_WriteString(")")}};CSgfWriter.prototype.private_WriteColorTable=function(a){var b=new CStreamWriter();b.Write_String("SGFCT");b.Write_Short(1);b.Write_Long(a.length);for(var e=0,c=a.length;e<c;e++){b.Write_Long(a[e])}var d=Common.Encode_Base64(b.Get_Bytes());this.private_WriteCommand("CT",d)};CSgfWriter.prototype.private_WriteNodeColorMap=function(j){var b=new CStreamWriter();b.Write_String("SGFCM");b.Write_Short(1);var e=this.m_oGameTree.Get_Board().Get_Size();var k=e.X,d=e.Y;b.Write_Short(k);b.Write_Short(d);var c=false;for(var h=0;h<d;h++){for(var i=0;i<k;i++){var a=j.m_oColorMap[Common_XYtoValue(i+1,h+1)];if(!a){b.Write_Byte(0)}else{var g=a.ToLong();if(undefined!==this.m_oColorTable[g]){b.Write_Byte(this.m_oColorTable[g]);c=true}else{b.Write_Byte(0)}}}}if(true===c){var f=Common.Encode_Base64(b.Get_Bytes());this.private_WriteCommand("CM",f)}};CSgfWriter.prototype.private_WriteAddOrRemoveStones=function(n){var i=[],j=[],h=[];for(var d=0,c=n.Get_CommandsCount();d<c;d++){var b=n.Get_Command(d);var k=b.Get_Type();var l=b.Get_Value();switch(k){case ECommand.AB:case ECommand.AW:case ECommand.AE:for(var a=0,f=l.length;a<f;a++){var g=l[a];for(var m=0,e=i.length;m<e;m++){if(g===i[m]){i.splice(m,1);e--;m--}}for(var m=0,e=j.length;m<e;m++){if(g===j[m]){j.splice(m,1);e--;m--}}for(var m=0,e=h.length;m<e;m++){if(g===h[m]){h.splice(m,1);e--;m--}}if(ECommand.AB===k){i.push(g)}else{if(ECommand.AW===k){j.push(g)}else{if(ECommand.AE===k){h.push(g)}}}}break}}if(i.length>0){this.private_WriteCommandName("AB");this.private_WritePosArray(i)}if(j.length>0){this.private_WriteCommandName("AW");this.private_WritePosArray(j)}if(h.length>0){this.private_WriteCommandName("AE");this.private_WritePosArray(h)}};CSgfWriter.prototype.private_WriteMarks=function(n){var j=[[],[],[],[],[],[]];var a=[];for(var e=0,d=n.Get_CommandsCount();e<d;e++){var c=n.Get_Command(e);var k=c.Get_Type();var l=c.Get_Value();var h=-1;switch(k){case ECommand.LB:h=0;l=[l.Pos];break;case ECommand.CR:h=1;break;case ECommand.MA:h=2;break;case ECommand.SQ:h=3;break;case ECommand.TR:h=4;break;case ECommand.RM:h=5;break}for(var b=0,g=l.length;b<g;b++){var i=l[b];for(var p=0,o=j.length;p<o;p++){if(p===h){j[p].push(i);if(0==p){a.push(c.Get_Value().Text)}}else{for(var m=0,f=j[p].length;m<f;m++){if(i===j[p][m]){j[p].splice(m,1);if(0===p){a.splice(m,1)}f--;m--}}}}}}if(j[0].length>0){this.private_WriteCommandName("LB");for(var b=0,d=j[0].length;b<d;b++){this.private_WriteString("[");this.private_WritePos2(j[0][b]);this.private_WriteString(":"+a[b]+"]")}}if(j[1].length>0){this.private_WriteCommandName("CR");this.private_WritePosArray(j[1])}if(j[2].length>0){this.private_WriteCommandName("MA");this.private_WritePosArray(j[2])}if(j[3].length>0){this.private_WriteCommandName("SQ");this.private_WritePosArray(j[3])}if(j[4].length>0){this.private_WriteCommandName("TR");this.private_WritePosArray(j[4])}};"use strict";function CRenjuBoardApi(){}CRenjuBoardApi.prototype.Create_GameTree=function(){return new CGameTree()};CRenjuBoardApi.prototype.Create_SimpleBoard=function(c,b){var a=new CDrawing(c);a.Create_SimpleBoard(b)};CRenjuBoardApi.prototype.Create_Viewer=function(d,c,b){var a=new CDrawing(d);if(true===b){a.Create_ViewerForBooklet(c)}else{a.Create_Viewer(c)}};CRenjuBoardApi.prototype.Create_EditorVer=function(c,b){var a=new CDrawing(c);a.Create_VerticalFullTemplate(b)};CRenjuBoardApi.prototype.Create_EditorHor=function(c,b){var a=new CDrawing(c);a.Create_HorizontalFullTemplate(b)};CRenjuBoardApi.prototype.Create_BoardWithNavigateButtons=function(c,b){var a=new CDrawing(c);a.Create_BoardWithNavigateButtons(b)};CRenjuBoardApi.prototype.Create_BoardCommentsButtonsNavigator=function(c,b){var a=new CDrawing(c);a.Create_MixedFullTemplate(b)};CRenjuBoardApi.prototype.Create_Presentation=function(d,c,a){var b=new CPresentation(d);b.Init(c,a)};CRenjuBoardApi.prototype.Create_Problems=function(f,c,h){var a=new CDrawing(f);a.Create_Problems(c);var g=0.3;if(h.TutorTime){g=parseFloat(h.TutorTime)}if(h.TutorColor&&"Black"===h.TutorColor){f.Set_TutorMode(false,BOARD_BLACK,g)}else{if(h.TutorColor&&"White"===h.TutorColor){f.Set_TutorMode(false,BOARD_WHITE,g)}else{f.Set_TutorMode(true,BOARD_EMPTY,g)}}f.Forbid_All();if(undefined!==h.NewNode){f.Set_EditingFlags({NewNode:true});f.Set_TutorNewNodeText(h.NewNode)}var e=(undefined!==h.RightCallback?h.RightCallback:null);var d=(undefined!==h.WrongCallback?h.WrongCallback:null);var b=(undefined!==h.ResetCallback?h.ResetCallback:null);f.Set_TutorCallbacks(e,d,b)};CRenjuBoardApi.prototype.Find_ProblemRightVariant=function(a){return a.Find_ProblemRightVariant()};CRenjuBoardApi.prototype.Start_AutoPlay=function(a){a.Start_AutoPlay(true)};CRenjuBoardApi.prototype.Stop_AutoPlay=function(a){a.Stop_AutoPlay()};CRenjuBoardApi.prototype.Set_Permissions=function(b,c){var a={};a.NewNode=c.NewNode;a.RemoveNodes=c.RemoveNodes;a.Move=c.Move;a.ChangeBoardMode=c.ChangeBoardMode;a.LoadFile=c.LoadFile;a.GameInfo=c.GameInfo;a.ViewPort=c.ViewPort;b.Set_EditingFlags(a)};CRenjuBoardApi.prototype.Load_Sgf=function(d,c,b,g,e){var a={};if(b&&true===b.Auto){a.Auto=true}else{if(b&&undefined!==b.X0&&undefined!==b.X1&&undefined!==b.Y0&&undefined!==b.Y1){a.Auto=false;a.X0=b.X0;a.X1=b.X1;a.Y0=b.Y0;a.Y1=b.Y1}else{a=null}}var f=d.m_nEditingFlags;d.Reset_EditingFlags();d.Load_Sgf(c,a,g,e);d.m_nEditingFlags=f};CRenjuBoardApi.prototype.Save_Sgf=function(a){return a.Save_Sgf()};CRenjuBoardApi.prototype.Get_MoveReference=function(c,a,b){var d;if(1===b){d=c.Get_StartNode()}else{d=c.Get_CurNode()}return c.Get_NodeReference(a,d)};CRenjuBoardApi.prototype.Set_StartNodeByReference=function(b,c){if(b&&c){var a=b.Get_CurNode();b.GoTo_MoveReference(c);b.Set_StartNode(b.Get_CurNode());b.GoTo_Node(a,true)}};CRenjuBoardApi.prototype.Is_Modified=function(a){return a.Is_Modified()};CRenjuBoardApi.prototype.Update_Size=function(a){a.Update_Size()};CRenjuBoardApi.prototype.Get_MatchName=function(a){if(a){return a.Get_MatchName()}return"White_vs_Black"};CRenjuBoardApi.prototype.Set_Sound=function(b,a){b.Set_Sound(a)};CRenjuBoardApi.prototype.Focus=function(a){if(a){a.Focus()}};CRenjuBoardApi.prototype.Get_Version=function(){return this.Version};CRenjuBoardApi.prototype.Toggle_Rulers=function(a){if(a){a.Toggle_Rulers()}};CRenjuBoardApi.prototype.Set_GameTreeHandler=function(b,a){if(b&&a){b.Set_Handler(a)}};CRenjuBoardApi.prototype.GoTo_Node=function(b,a){if(b){b.GoTo_NodeById(a)}};CRenjuBoardApi.prototype.GoTo_NodeByMoveNumber=function(b,a){if(b){b.GoTo_NodeByMoveNumber(a)}};CRenjuBoardApi.prototype.Set_ShowTarget=function(b,a){if(b){b.Set_ShowTarget(a,true)}};CRenjuBoardApi.prototype.Set_BoardTheme=function(b,a){if(b){var c=null;if("TrueColor"===a){c=EColorScheme.TrueColor}else{if("BookStyle"===a){c=EColorScheme.BookStyle}else{if("Simple"===a){c=EColorScheme.SimpleColor}else{if("Dark"===a){c=EColorScheme.Dark}}}}if(c){b.Set_LocalColorScheme(c)}}};CRenjuBoardApi.prototype.Get_DivHeightByWidth=function(b,a){if(b){return b.Get_DivHeightByWidth(a)}};CRenjuBoardApi.prototype.Embed=function(l,e){var a=-1;var k=null;var m=null;var h=null;var c=null;var f="TrueColor";var g=this;var b=false;var j=this.Create_GameTree();j.Get_LocalSettings().Set_Embedding(true);if(e.viewPort){k={};if("auto"===e.viewPort){k.Auto=true}else{k.Auto=false;k.X0=parseInt(e.viewPort["X0"]);k.X1=parseInt(e.viewPort["X1"]);k.Y0=parseInt(e.viewPort["Y0"]);k.Y1=parseInt(e.viewPort["Y1"])}}if(e.moveNumber){a=parseInt(e.moveNumber)}if(e.boardMode){h=e.boardMode}else{h="viewer"}if(e.width){c=e.width}if(e.boardTheme){f=e.boardTheme}if(true===e.booklet){b=true}if(null!=e.sgfUrl){i(e.sgfUrl)}else{if(null!==e.sgfData){m=e.sgfData;d()}else{m="(;FF[4]GM[4]SZ[15])";d()}}function i(n){n=decodeURIComponent(n);var o=new XMLHttpRequest();o.open("GET",n+"?_="+new Date().getTime(),true);o.onreadystatechange=function(){if(o.readyState===4){if(o.status===200||o.status==0){m=o.responseText;d()}}};o.send(null)}function d(){var q=document.getElementById(l);if(!q){return}var p={};p.LoadFile=false;p.GameInfo=false;p.ChangeBoardMode=false;p.NewNode=false;p.Move=false;p.ViewPort=false;g.Set_BoardTheme(j,f);var o=400;if("image"===h){g.Create_SimpleBoard(j,l);g.Set_ShowTarget(j,false);o=600}else{if("viewer"==h){g.Create_Viewer(j,l,b);p.Move=true;o=600}else{if("vereditor"===h){g.Create_EditorVer(j,l);p.LoadFile=true;p.GameInfo=true;p.ChangeBoardMode=true;p.NewNode=true;p.Move=true;o=600}else{if("horeditor"===h){g.Create_EditorHor(j,l);p.LoadFile=true;p.GameInfo=true;p.ChangeBoardMode=true;p.NewNode=true;p.Move=true;o=900}else{if("problems"==h){var r={};if(e.problemsTime){r.TutorTime=e.problemsTime}if(e.problemsColor){r.TutorColor=e.problemsColor}if(e.problemsNewNode){r.NewNode=e.problemsNewNode}g.Create_Problems(j,l,r);p=null;o=400;if(null===k){k={};k.Auto=true}}}}}}g.Load_Sgf(j,m,k);if(null!==c){o=c}var n=g.Get_DivHeightByWidth(j,o);q.style.width=o+"px";q.style.height=n+"px";if(-1!==a){g.GoTo_NodeByMoveNumber(j,a)}else{g.GoTo_NodeByMoveNumber(j,0)}g.Update_Size(j);if(p){g.Set_Permissions(j,p)}}return j};window.RenjuBoardApi=new CRenjuBoardApi();CRenjuBoardApi.prototype.Embed=CRenjuBoardApi.prototype.Embed;CRenjuBoardApi.prototype.Create_GameTree=CRenjuBoardApi.prototype.Create_GameTree;CRenjuBoardApi.prototype.Create_SimpleBoard=CRenjuBoardApi.prototype.Create_SimpleBoard;CRenjuBoardApi.prototype.Create_Viewer=CRenjuBoardApi.prototype.Create_Viewer;CRenjuBoardApi.prototype.Create_EditorHor=CRenjuBoardApi.prototype.Create_EditorHor;CRenjuBoardApi.prototype.Create_EditorVer=CRenjuBoardApi.prototype.Create_EditorVer;CRenjuBoardApi.prototype.Create_BoardWithNavigateButtons=CRenjuBoardApi.prototype.Create_BoardWithNavigateButtons;CRenjuBoardApi.prototype.Create_BoardCommentsButtonsNavigator=CRenjuBoardApi.prototype.Create_BoardCommentsButtonsNavigator;CRenjuBoardApi.prototype.Create_Presentation=CRenjuBoardApi.prototype.Create_Presentation;CRenjuBoardApi.prototype.Create_Problems=CRenjuBoardApi.prototype.Create_Problems;CRenjuBoardApi.prototype.Set_Permissions=CRenjuBoardApi.prototype.Set_Permissions;CRenjuBoardApi.prototype.Load_Sgf=CRenjuBoardApi.prototype.Load_Sgf;CRenjuBoardApi.prototype.Save_Sgf=CRenjuBoardApi.prototype.Save_Sgf;CRenjuBoardApi.prototype.Get_MoveReference=CRenjuBoardApi.prototype.Get_MoveReference;CRenjuBoardApi.prototype.Set_StartNodeByReference=CRenjuBoardApi.prototype.Set_StartNodeByReference;CRenjuBoardApi.prototype.Is_Modified=CRenjuBoardApi.prototype.Is_Modified;CRenjuBoardApi.prototype.Update_Size=CRenjuBoardApi.prototype.Update_Size;CRenjuBoardApi.prototype.Set_Sound=CRenjuBoardApi.prototype.Set_Sound;CRenjuBoardApi.prototype.Find_ProblemRightVariant=CRenjuBoardApi.prototype.Find_ProblemRightVariant;CRenjuBoardApi.prototype.Start_AutoPlay=CRenjuBoardApi.prototype.Start_AutoPlay;CRenjuBoardApi.prototype.Stop_AutoPlay=CRenjuBoardApi.prototype.Stop_AutoPlay;CRenjuBoardApi.prototype.Focus=CRenjuBoardApi.prototype.Focus;CRenjuBoardApi.prototype.Get_MatchName=CRenjuBoardApi.prototype.Get_MatchName;CRenjuBoardApi.prototype.Get_Version=CRenjuBoardApi.prototype.Get_Version;CRenjuBoardApi.prototype.Toggle_Rulers=CRenjuBoardApi.prototype.Toggle_Rulers;CRenjuBoardApi.prototype.Set_GameTreeHandler=CRenjuBoardApi.prototype.Set_GameTreeHandler;CRenjuBoardApi.prototype.GoTo_Node=CRenjuBoardApi.prototype.GoTo_Node;CRenjuBoardApi.prototype.GoTo_NodeByMoveNumber=CRenjuBoardApi.prototype.GoTo_NodeByMoveNumber;CRenjuBoardApi.prototype.Set_ShowTarget=CRenjuBoardApi.prototype.Set_ShowTarget;CRenjuBoardApi.prototype.Get_DivHeightByWidth=CRenjuBoardApi.prototype.Get_DivHeightByWidth;CRenjuBoardApi.prototype.Set_BoardTheme=CRenjuBoardApi.prototype.Set_BoardTheme;CRenjuBoardApi.prototype.Version="1.0.3";