var cellSelection="tiles",previousClassName="",keyCode,foundWords=[],missingWords=[],wordNum=wf_wordNum,xLast=boardLength/2-0.5;String.prototype.multipleReplace=function(a,b){for(var c=this;c.indexOf(a)!==-1;)c=c.replace(a,b);return c};function queryString(a){var b,c,d;b=decodeURIComponent(window.location.search.substring(1)).split("&");for(d=0;d<b.length;++d){c=b[d].split("=");if(c[0]===a)return c[1]}return false}
function scrollBarWidth(){document.body.style.overflow="hidden";var a=document.body.clientWidth;document.body.style.overflow="scroll";a-=document.body.clientWidth;a||(a=document.body.offsetWidth-document.body.clientWidth);document.body.style.overflow="";return a}
function print_r(a,b,c,d){d=d||0;b=b||10;c=c||" ";if(d>b)return"[WARNING: Too much recursion]\n";var e,f="",g=typeof a,h="";if(a===null)f+="(null)\n";else if(g==="object"){d++;for(e=0;e<d;e++)h+=c;if(a&&a.length)g="array";f+="("+g+") :\n";for(e in a)try{f+=h+"["+e+"] : "+print_r(a[e],b,c,d+1)}catch(j){return"[ERROR: "+j+"]\n"}}else{if(g==="string")if(a==="")a="(empty)";f+="("+g+") "+a+"\n"}return f}var var_dump=print_r;
Function.prototype.defaults=function(){var a,b;a=this;b=(new Array(a.length-arguments.length)).concat(Array.prototype.slice.apply(arguments));return function(){return a.apply(a,Array.prototype.slice.apply(arguments).concat(b.slice(arguments.length,b.length)))}};function Enum(){}Enum.Color={white:"0",yellow:"1",red:"2"};Enum.Direction={right:"0",down:"1"};Enum.Premium={ctr:"0",dls:"1",dws:"2",tls:"3",tws:"4",qls:"5",qws:"6",spc:" ",gen:"8"};
var PremiumColors=[ctr_color,dls_color,dws_color,tls_color,tws_color,qls_color,qws_color,nul_color,gen_color];function Word(a,b,c,d,e){this.value=a;this.word=b;this.x=c;this.y=d;this.direction=e}
if(wf_foundWords!=="")for(var foundWords_array=wf_foundWords.split(" "),i=0;i<foundWords_array.length;){var value=foundWords_array[i++],word=foundWords_array[i++],x=parseInt(foundWords_array[i++],10),y=parseInt(foundWords_array[i++],10),direction=foundWords_array[i++]==="0"?Enum.Direction.right:Enum.Direction.down;foundWords[i/5-1]=new Word(value,word,x,y,direction)}
if(wf_missingWords!==""){var missingWords_array=wf_missingWords.split(" ");for(i=0;i<missingWords_array.length;){value=null;word=missingWords_array[i++];x=parseInt(missingWords_array[i++],10);y=parseInt(missingWords_array[i++],10);direction=missingWords_array[i++]==="0"?Enum.Direction.right:Enum.Direction.down;missingWords[i/4-1]=new Word(value,word,x,y,direction)}}function Square(a){var b;this.letter="";this.premium=Enum.Premium.gen;for(b in a)this[b]=a[b]}
function Board(){var a,b,c;this.squares=[];for(a=0;a<boardLength;++a){this.squares[a]=[];for(b=0;b<boardLength;++b){c=wf_board[b*boardLength+a];"a"<=c&&c<="z"||"A"<=c&&c<="Z"||(c="");this.squares[a][b]=new Square({letter:c,premium:premiums.charAt(b*boardLength+a)})}}}var board=new Board;
function addHighlight(a,b){var c,d,e;c=a.x;d=a.y;for(e=0;e<a.word.length;++e){document.getElementById("div"+c+"."+d).className="highlighted";document.getElementById("div"+c+"."+d).style.backgroundColor=b;if(a.direction===Enum.Direction.right)++c;else++d}}
function addWordAndBorderAndHighlight(a,b){if(a){var c,d;addHighlight(a,b);b=a.x;c=a.y;for(d=0;d<a.word.length;++d){document.getElementById("cell"+b+"."+c).value=a.word.charAt(d);if(a.direction===Enum.Direction.right)if(d===0)document.getElementById("cell"+b+"."+c).className="highlightedSquareL";else if(d===a.word.length-1)document.getElementById("cell"+b+"."+c).className="highlightedSquareR";else document.getElementById("cell"+b+"."+c).className="highlightedSquareMR";else if(d===0)document.getElementById("cell"+
b+"."+c).className="highlightedSquareT";else if(d===a.word.length-1)document.getElementById("cell"+b+"."+c).className="highlightedSquareB";else document.getElementById("cell"+b+"."+c).className="highlightedSquareMD";if(a.direction===Enum.Direction.right)++b;else++c}}else console.warn("addWordAndBorderAndHighlight(wordObject, color): wordObject is null, returning.")}
function removeBorder(a){var b,c,d,e,f;b=foundWords[wordNum];if(a!==undefined)c=foundWords[a];d=b.x;e=b.y;for(f=0;f<b.word.length;++f){if(a===undefined||!(c.direction===Enum.Direction.right&&e===c.y&&d>=c.x&&d<c.x+c.word.length)||!(c.direction===Enum.Direction.down&&d===c.x&&e>=c.y&&e<c.y+c.word.length))document.getElementById("cell"+d+"."+e).className="square";if(b.direction===Enum.Direction.right)++d;else++e}}
function removeHighlight(a,b){var c;c=document.getElementById("div"+a+"."+b);(a=PremiumColors[board.squares[a][b].premium])||(a="#FFFFFF");c.className="notHighlighted";c.style.backgroundColor=a}
function removeBorderAndHighlight(a){var b,c,d,e,f;b=foundWords[wordNum];if(a!==undefined)c=foundWords[a];removeBorder(a);d=b.x;e=b.y;for(f=0;f<b.word.length;++f){if(a===undefined||!(c.direction===Enum.Direction.right&&e===c.y&&d>=c.x&&d<c.x+c.word.length)||!(c.direction===Enum.Direction.down&&d===c.x&&e>=c.y&&e<c.y+c.word.length))removeHighlight(d,e);if(b.direction===Enum.Direction.right)++d;else++e}}
function moveLeft(){var a,b;a=parseInt(cellSelection.substr(4).split(".")[0],10);b=parseInt(cellSelection.substr(4).split(".")[1],10);document.getElementById(cellSelection="cell"+(a+boardLength-1)%boardLength+"."+b).focus()}function moveRight(){var a,b;a=parseInt(cellSelection.substr(4).split(".")[0],10);b=parseInt(cellSelection.substr(4).split(".")[1],10);document.getElementById(cellSelection="cell"+(a+1)%boardLength+"."+b).focus()}
function moveUp(){var a,b;if(cellSelection==="tiles")document.getElementById(cellSelection="cell"+xLast+"."+(boardLength-1)).focus();else{a=parseInt(cellSelection.substr(4).split(".")[0],10);b=parseInt(cellSelection.substr(4).split(".")[1],10);xLast=a;b===0?document.getElementById(cellSelection="tiles").focus():document.getElementById(cellSelection="cell"+xLast+"."+(b-1)).focus()}}
function moveDown(){var a,b;if(cellSelection==="tiles")document.getElementById(cellSelection="cell"+xLast+".0").focus();else{a=parseInt(cellSelection.substr(4).split(".")[0],10);b=parseInt(cellSelection.substr(4).split(".")[1],10);xLast=a;b===boardLength-1?document.getElementById(cellSelection="tiles").focus():document.getElementById(cellSelection="cell"+xLast+"."+(b+1)).focus()}}
document.onkeydown=function(a){var b;if(!a)a=window.event;if(a.which)keyCode=a.which;else if(a.keyCode)keyCode=a.keyCode;else window.alert("Exception: function keyDown()");if(!(a.ctrlKey||a.altKey)){if(keyCode>=48&&keyCode<=57)return false;if(keyCode===96||keyCode===101)return false;if(37<=keyCode&&keyCode<=40||65<=keyCode&&keyCode<=90||keyCode===8||keyCode===46||keyCode===98||keyCode===100||keyCode===102||keyCode===104||keyCode===97||keyCode===99||keyCode===103||keyCode===105||keyCode===35||keyCode===
34||keyCode===36||keyCode===33){if(a.target&&a.target.name)b=a.target.name;else if(a.srcElement&&a.srcElement.name)b=a.srcElement.name;b||document.getElementById(cellSelection).focus();if(!(cellSelection==="tiles"&&(keyCode===37||keyCode===39||keyCode===100||keyCode===102)))if(cellSelection!=="tiles"&&(keyCode>=65&&keyCode<=90||keyCode===8||keyCode===46)){if(keyCode>=65&&keyCode<=90)if(a.shiftKey)document.getElementById(cellSelection).value=String.fromCharCode(keyCode);else document.getElementById(cellSelection).value=
String.fromCharCode(keyCode).toLowerCase();if(keyCode===8||keyCode===46)document.getElementById(cellSelection).value="";if(page==="game"){document.getElementById(cellSelection).blur();x=parseInt(cellSelection.substr(4).split(".")[0],10);y=parseInt(cellSelection.substr(4).split(".")[1],10);removeHighlight(x,y);if(foundWords[wordNum].direction===Enum.Direction.right)y===foundWords[wordNum].y&&x>=foundWords[wordNum].x&&x<foundWords[wordNum].x+foundWords[wordNum].word.length&&removeBorder();else x===
foundWords[wordNum].x&&y>=foundWords[wordNum].y&&y<foundWords[wordNum].y+foundWords[wordNum].word.length&&removeBorder();document.getElementById(cellSelection).focus()}}else if(keyCode===37||keyCode===100){moveLeft();return false}else if(keyCode===38||keyCode===104){moveUp();return false}else if(keyCode===39||keyCode===102){moveRight();return false}else if(keyCode===40||keyCode===98){moveDown();return false}else if(keyCode===97||keyCode===35){moveDown();moveLeft();return false}else if(keyCode===99||
keyCode===34){moveDown();moveRight();return false}else if(keyCode===103||keyCode===36){moveUp();moveLeft();return false}else if(keyCode===105||keyCode===33){moveUp();moveRight();return false}}}};function verifyNotAllUppercase(){return true}function numberOfBlankTiles(){var a,b,c;a=document.getElementById("tiles").value;for(c=b=0;c<a.length;++c)if((a.charAt(c)<"a"||a.charAt(c)>"z")&&(a.charAt(c)<"A"||a.charAt(c)>"Z"))++b;return b}
function enableFormButtons(){document.getElementById("search").disabled=false;document.getElementById("clear").disabled=false;return true}function disableFormButtons(){document.getElementById("search").disabled=true;return document.getElementById("clear").disabled=true}
function verify(){if(document.getElementById("tiles").value===""||numberOfBlankTiles()>2||!verifyNotAllUppercase()){numberOfBlankTiles()>2&&window.alert("A maximum of two blank tiles may be input.");Effect.Shake("divLowerBoardInput",{duration:0.5,distance:10});Effect.Pulsate("tiles",{duration:1.5,pulses:5});new Effect.Highlight("tiles",{duration:5,startcolor:"#ff9999",endcolor:"#ffffff",restorecolor:"#ffffff"});document.getElementById("tiles").focus();return false}disableFormButtons();return true}
var MOVING_DOT_UPDATE_DELAY_IN_MILLISECONDS=333,TOTAL_DOTS=4;function movingDots(a){a=a===undefined?0:parseInt(a,10);for(var b=1;b<=TOTAL_DOTS;++b)if(b<=a)document.getElementById("spanDot"+b).style.visibility="visible";else document.getElementById("spanDot"+b).style.visibility="hidden";setTimeout("movingDots("+(a+1)%(TOTAL_DOTS+1)+")",MOVING_DOT_UPDATE_DELAY_IN_MILLISECONDS)}
function displayPleaseWait(){var a,b;a=[];numberOfBlankTiles()===2?a.push('<span class="overlay">Wow, you have two blank tiles!<br /><br />Searching</span>'):a.push('<span class="overlay">Searching</span>');for(b=1;b<=TOTAL_DOTS;++b)a.push('<span id="spanDot'+b+'" class="overlay">.</span>');document.getElementById("divCenteredInnerWrapper").innerHTML=a.join("");movingDots()}
function submitBoard(){var a,b;if(verify())disableFormButtons();else return false;a=[];for(y=0;y<boardLength;++y)for(x=0;x<boardLength;++x)document.getElementById("cell"+x+"."+y).value?a.push(document.getElementById("cell"+x+"."+y).value):a.push("-");a=a.join("");b=document.getElementById("tiles").value;displayPleaseWait();document.location.href="?game="+wf_game+"&tiles="+b+"&board="+a+"&lexicon="+wf_lexicon;return true}function clearBoard(){disableFormButtons();document.location.href="/"}
function generateWordDefinition(){document.getElementById("tdWordDefinition").innerHTML='<iframe id="iframeWordDefinition" class="wordDefinition" height="385" width="180" allowtransparency="true" frameborder="0" src="define.php?word='+foundWords[wordNum].word.toLowerCase()+'"></iframe>';document.getElementById("iframeWordDefinition").height=document.getElementById("tdBoard").offsetHeight-2}var wordDefinitionOn=false,wordDefinitionGenerated=false;
function toggleDisplayOfWordDefinition(){wordDefinitionOn=!wordDefinitionOn;if(!wordDefinitionGenerated){wordDefinitionGenerated=true;generateWordDefinition()}if(wordDefinitionOn)document.getElementById("iframeWordDefinition").style.display="inline";else document.getElementById("iframeWordDefinition").style.display="none"}
function generateBoard(){var a,b;board=new Board;a=[];a.push('<table id="tableBoard" class="board"><tbody>');for(y=0;y<boardLength;++y){a.push("<tr>");for(x=0;x<boardLength;++x){a.push("<td>");b=PremiumColors[board.squares[x][y].premium];switch(board.squares[x][y].premium){case Enum.Premium.ctr:case Enum.Premium.dls:case Enum.Premium.dws:case Enum.Premium.tls:case Enum.Premium.tws:case Enum.Premium.qls:case Enum.Premium.qws:a.push('<div class="premiumSquare" style="background-color:'+b+"; outline-color:"+
b+';">');break;case Enum.Premium.spc:a.push('<div class="normalSquare"  style="background-color:'+b+';">');break;case Enum.Premium.gen:a.push('<div class="normalSquare"  style="background-color:'+b+"; outline-color:"+b+';">');break;default:console.error("Exception: printBoardAndWordInfo() - switch (board.squares[x][y].premium)")}a.push('<div class="notHighlighted" id="div'+x+"."+y+'">');a.push('<input class="square" type="text" size="1" maxlength="1" id="cell'+x+"."+y+'" name="cell'+x+"."+y+'" value="" autocomplete="off" onkeydown="this.select();" onkeyup="this.select();" onmouseup="if (cellSelection === \'cell'+
x+"."+y+"') this.select();\" onfocus=\"previousClassName = this.className; this.className = 'focusedSquare'; cellSelection = 'cell"+x+"."+y+'\'; this.select();" onblur="this.className = previousClassName;" />');a.push("</div>");a.push("</div></td>")}a.push("</tr>")}a.push("</tbody></table>");document.getElementById("tdBoard").innerHTML=a.join("")}var boardGenerated=false;
function displayBoardAndWordInfo(){if(!boardGenerated){boardGenerated=true;generateBoard()}if(page==="game"){var a,b,c;a=[];for(b=0;b<missingWords.length;++b)a.push('<h2>Warning: "<span class="redBackground lighterLinkColor">'+missingWords[b].word+'</span>" is invalid.</h2>');if(page==="game")if(foundWords.length!==0){document.title="Lexical Word Finder - "+wf_game.multipleReplace("_"," ")+" - "+foundWords[wordNum].word+" for "+foundWords[wordNum].value+" points";a.push('<h2>Played "<a href="#" onclick="toggleDisplayOfWordDefinition(); return false;"'+
(missingWords.length!==0?' class="yellowBackground">':">")+foundWords[wordNum].word+'</a>" for '+foundWords[wordNum].value+' points. [<a href="#" onclick="toggleDisplayOfMoreResults(); return false;">more...</a>]</h2>')}else a.push("<h2>No words found!</h2>");document.getElementById("captionWordPlayed").innerHTML=a.join("");for(a=0;a<boardLength;++a)for(b=0;b<boardLength;++b)document.getElementById("cell"+b+"."+a).value=board.squares[b][a].letter;for(a=0;a<missingWords.length;++a){c=missingWords[a];
for(b=0;b<c.word.length;++b)addHighlight(c,color_r)}addWordAndBorderAndHighlight(foundWords[wordNum],color_y)}wordDefinitionOn=wordDefinitionGenerated=false}function linkToSelectedWord(){document.location.href="?game="+wf_game+"&tiles="+wf_tiles+"&board="+wf_board+"&lexicon="+wf_lexicon+"&word="+(wordNum+1)}
function generateMoreResults(){var a,b,c,d,e;document.getElementById("tdMoreWords").innerHTML='<!--div id="divMoreResults" style="display:none;"><div--\><iframe id="iframeMoreWords" height="385" width="180" allowtransparency="true" frameborder="0"></iframe><!--/div></div--\>';a=document.getElementById("iframeMoreWords");b=a.contentDocument;if(b===undefined||b===null)b=a.contentWindow.document;b.open();c=wf_foundWords.split(" ");d=0;b.writeln('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">');
b.writeln('<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">');b.writeln("<head>");b.writeln("<title>Lexical Word Finder - "+wf_game.multipleReplace("_"," ")+" - Top "+c.length/5+" Words</title>");b.writeln('<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1" />');b.writeln('<link rel="stylesheet" type="text/css" href="/includes/style.css" />');b.writeln("<![if !IE]>");b.writeln('<script type="text/javascript" src="/includes/jquery/jquery-1.4.1.min.js"><\/script>');
b.writeln('<script type="text/javascript" src="/includes/tablesorter/jquery.tablesorter.min.js"><\/script>');b.writeln('<script type="text/javascript">');b.writeln("$(document).ready(function()");b.writeln("{");b.writeln('\t$("#tableMoreWords").tablesorter(');b.writeln("\t{");b.writeln('\t\twidgets: ["zebra"]');b.writeln("\t});");e=scrollBarWidth(window);b.writeln('\tparent.document.getElementById("iframeMoreWords").width = '+(e&&e!==0?e:"17")+' + document.getElementById("tableMoreWords").offsetWidth;');
b.writeln("}); ");b.writeln("<\/script>");b.writeln("<![endif]>");b.writeln("</head>");b.writeln('<body class="moreWords lighterLinks">');b.writeln('<table id="tableMoreWords">');b.writeln('<thead><tr><!-- th><big><a href="#" onclick="return false;">#<span></span></a></big></th --\><th><big><a href="#" onclick="return false;">&#9733;<span></span></a></big></th><th style="text-align:left;"><big><a href="#" onclick="return false;">word<span></span></a></big></th><th><big><a href="#" onclick="return false;">x<span></span></a></big></th><th><big><a href="#" onclick="return false;">y<span></span></a></big></th><th><big><a href="#" onclick="return false;">&darr;<span></span></a></big></th></tr></thead>');
for(b.writeln("<tbody>");d<c.length;){b.writeln('<tr onmouseover="parent.document.getElementById(parent.cellSelection).blur(); parent.removeBorderAndHighlight('+d/5+"); parent.wordNum="+d/5+'; parent.displayBoardAndWordInfo();" onclick="parent.wordNum='+d/5+'; parent.linkToSelectedWord();">');b.writeln("<!-- td>"+(d/5+1)+"</td --\>");b.writeln("<td>"+c[d++]+"</td>");b.writeln("<td>"+c[d++]+"</td>");b.writeln("<td>"+ ++c[d++]+"</td>");b.writeln("<td>"+(boardLength-c[d++])+"</td>");c[d++]==="0"?b.writeln("<td>&rarr;</td>"):
b.writeln("<td>&darr;</td>");b.writeln("</tr>")}b.writeln("</tbody>");b.writeln("</table>");b.writeln("</body>");b.writeln("</html>");b.close();a.height=document.getElementById("tdBoard").offsetHeight-2}var moreResultsOn=false,moreResultsGenerated=false;
function toggleDisplayOfMoreResults(){moreResultsOn=!moreResultsOn;if(!moreResultsGenerated){moreResultsGenerated=true;generateMoreResults()}if(moreResultsOn)document.getElementById("iframeMoreWords").style.display="inline";else document.getElementById("iframeMoreWords").style.display="none"};