function $(v){return(document.getElementById(v));}
function getEventSrc(e)
{return window.event?window.event.srcElement:e.target;}
function CancelEvent(e)
{if(window.event)
window.event.cancelBubble=true;else e.cancelBubble=true;}
function AjaxCreate()
{try{return new XMLHttpRequest();}catch(e){}
try{return new ActiveXObject("MSXML2.XMLHTTP");}catch(e){}
try{return new ActiveXObject("Microsoft.XMLHTTP");}catch(e){}
return false;}
function AjaxExecute(url,data,funct)
{var xhr=AjaxCreate();xhr.onreadystatechange=function()
{if((xhr.readyState==4)&&(xhr.status==200))
{funct(xhr.responseText);}};xhr.open("POST",url,true);xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");xhr.send(data);}
function AjaxDummy(data){}
function ltrim(s){return s.replace(/^\s*/,"");}
function rtrim(s){return s.replace(/\s*$/,"");}
function trim(s){return rtrim(ltrim(s));}
function setFavorite(iURL,iTitle)
{if(window.sidebar){window.sidebar.addPanel(iTitle,iURL,"");}
else if(window.external){window.external.AddFavorite(iURL,iTitle);}}
function showHelp(iShow)
{$("help").style.display=(iShow?"block":"none");return false;}
function __Query(iQueryId,iPath)
{window.location.href="http://"+window.location.hostname+iPath+"/"+$("__query_"+iQueryId).value;return false;}
function showLanguageWindow(iShow)
{$("language-window").style.display=(iShow?"block":"none");return false;}
var language_Timer=null;function language_ShowList(){$("language-list").style.display="block";clearTimeout(language_Timer);}
function language_HideList(){$("language-list").style.display="none";}
function language_StartTimer(){language_Timer=setTimeout("language_HideList()",500);}
function language_ResetTimer(){clearTimeout(language_Timer);}
var ButtonPressed=false;var Changed=false;var Class="c1";function nextClass(c){return(c=="c1")?"c0":(c=="cX"||EditMode)?"c1":"cX";}
function MouseDown(e){o=getEventSrc(e);if(o.tagName=="TD"){ButtonPressed=true;Class=o.className=nextClass(o.className);}}
function MouseUp(e){o=getEventSrc(e);if(o.tagName=="TD"){ButtonPressed=false;}}
function MouseOver(e){o=getEventSrc(e);if(o.tagName=="TD"){if(ButtonPressed)o.className=Class;}
if(window.event)
window.event.cancelBubble=true;else e.cancelBubble=true;}
function hasChanged()
{Changed=true;}
var aTDs;function getBitMap()
{var iResult="";for(var i=0;i<aTDs.length;i++)
{iResult+=aTDs[i].className.substr(1,2)}
return iResult}
function submit()
{$("bitmap").value=getBitMap()
$("f_bitmap").submit()}
function save(iNum)
{AjaxExecute("/save.php","__code="+Code+"&work="+getBitMap()+"&num="+iNum,onSaveReturn);return false;}
function onSaveReturn()
{alert("Puzzle saved...");Changed=false;}
function init()
{aTDs=$("grid").getElementsByTagName("TD");for(var i=0;i<aTDs.length;i++)
{if(!aTDs[i].className)
aTDs[i].className="c0";}
if(Message!=null)
alert(Message);}
function action(iAction,iBitmap,iCode,iNum)
{$("action").value=iAction;$("bitmap").value=iBitmap;$("code").value=iCode;$("saveNum").value=iNum;$("f").submit()}
function closeAll(iBlock)
{var x=[0,1,2,3,4,5];if($("LoadSave"))$("LoadSave").style.display="none";if($("showAddress"))$("showAddress").style.display="none";if($("createNew"))$("createNew").style.display="none";if($("playRandom"))$("playRandom").style.display="none";if($("store"))$("store").style.display="none";}
function _toggleBlock(iBlock)
{closeAll(iBlock);$(iBlock).style.display=($(iBlock).style.display=="block"?"none":"block");return false;}
function toggleLoadSave(){return _toggleBlock("LoadSave");}
function toggleShowAddress(){return _toggleBlock("showAddress");}
function toggleCreateNew(){return _toggleBlock("createNew");}
function togglePlayRandom(){return _toggleBlock("playRandom");}
function toggleStore(){return _toggleBlock("store");}
function doShowSolution()
{window.open("/solution.php?__code="+Code,"nonogram","width=600,height=700,resizable=yes,scrollbars=no,status=yes");return false;}
function doEditEncode(){action("editEncode",getBitMap(),"","");return false;}
function doCheckCells(){action("checkCells",getBitMap(),Code,"");return false;}
function doLoad(iNum){action("playSaved","","",iNum);return false;}
function onRowColChange(Id)
{iValue=$("rows"+Id).value+"x"+$("cols"+Id).value;for(var i=0,l=$("size"+Id).length;i<l;i++)
{if($("size"+Id).options[i].value==iValue)
{$("size"+Id).selectedIndex=i
$("size"+Id).style.backgroundColor="#FFFFFF"
return;}}
$("size"+Id).style.backgroundColor="#F0F0F0"}
function onSizeChange(Id)
{$("size"+Id).style.backgroundColor="#FFFFFF"
var iSize=$("size"+Id).value.split("x",2);$("rows"+Id).value=iSize[0];$("cols"+Id).value=iSize[1];}
