(function(a){a.widget("ui.selectmenu",{getter:"value",version:"1.8",eventPrefix:"selectmenu",options:{transferClasses:true,style:"dropdown",positionOptions:{my:"left top",at:"left bottom",offset:null},width:null,menuWidth:null,handleWidth:26,maxHeight:null,icons:null,format:null,bgImage:function(){},wrapperElement:""},_create:function(){var b=this,g=this.options;var f=this.element.attr("id")||"ui-selectmenu-"+Math.random().toString(16).slice(2,10);this.ids=[f+"-button",f+"-menu"];this._safemouseup=true;this.newelement=a('<a class="'+this.widgetBaseClass+' ui-widget ui-state-default ui-corner-all" id="'+this.ids[0]+'" role="button" href="#" tabindex="0" aria-haspopup="true" aria-owns="'+this.ids[1]+'"></a>').insertAfter(this.element);this.newelement.wrap(g.wrapperElement);var e=this.element.attr("tabindex");if(e){this.newelement.attr("tabindex",e)}this.newelement.data("selectelement",this.element);this.selectmenuIcon=a('<span class="'+this.widgetBaseClass+'-icon ui-icon"></span>').prependTo(this.newelement);this.newelement.prepend('<span class="'+b.widgetBaseClass+'-status" />');a("label[for="+this.element.attr("id")+"]").attr("for",this.ids[0]).bind("click.selectmenu",function(){b.newelement[0].focus();return false});this.newelement.bind("mousedown.selectmenu",function(h){b._toggle(h,true);if(g.style=="popup"){b._safemouseup=false;setTimeout(function(){b._safemouseup=true},300)}return false}).bind("click.selectmenu",function(){return false}).bind("keydown.selectmenu",function(j){var h=false;switch(j.keyCode){case a.ui.keyCode.ENTER:h=true;break;case a.ui.keyCode.SPACE:b._toggle(j);break;case a.ui.keyCode.UP:if(j.altKey){b.open(j)}else{b._moveSelection(-1)}break;case a.ui.keyCode.DOWN:if(j.altKey){b.open(j)}else{b._moveSelection(1)}break;case a.ui.keyCode.LEFT:b._moveSelection(-1);break;case a.ui.keyCode.RIGHT:b._moveSelection(1);break;case a.ui.keyCode.TAB:h=true;break;default:h=true;b._typeAhead(j.keyCode,"mouseup");break}return h}).bind("mouseover.selectmenu focus.selectmenu",function(){if(!g.disabled){a(this).addClass(b.widgetBaseClass+"-focus ui-state-hover")}}).bind("mouseout.selectmenu blur.selectmenu",function(){if(!g.disabled){a(this).removeClass(b.widgetBaseClass+"-focus ui-state-hover")}});a(document).bind("mousedown.selectmenu",function(h){b.close(h)});this.element.bind("click.selectmenu",function(){b._refreshValue()}).bind("focus.selectmenu",function(){if(this.newelement){this.newelement[0].focus()}});var d=this.element.width();this.newelement.width((g.width)?g.width:d);this.element.hide();this.list=a('<ul class="'+b.widgetBaseClass+'-menu ui-widget ui-widget-content" aria-hidden="true" role="listbox" aria-labelledby="'+this.ids[0]+'" id="'+this.ids[1]+'"></ul>').appendTo("body");this.list.wrap(g.wrapperElement);this.list.bind("keydown.selectmenu",function(j){var h=false;switch(j.keyCode){case a.ui.keyCode.UP:if(j.altKey){b.close(j,true)}else{b._moveFocus(-1)}break;case a.ui.keyCode.DOWN:if(j.altKey){b.close(j,true)}else{b._moveFocus(1)}break;case a.ui.keyCode.LEFT:b._moveFocus(-1);break;case a.ui.keyCode.RIGHT:b._moveFocus(1);break;case a.ui.keyCode.HOME:b._moveFocus(":first");break;case a.ui.keyCode.PAGE_UP:b._scrollPage("up");break;case a.ui.keyCode.PAGE_DOWN:b._scrollPage("down");break;case a.ui.keyCode.END:b._moveFocus(":last");break;case a.ui.keyCode.ENTER:case a.ui.keyCode.SPACE:b.close(j,true);a(j.target).parents("li:eq(0)").trigger("mouseup");break;case a.ui.keyCode.TAB:h=true;b.close(j,true);break;case a.ui.keyCode.ESCAPE:b.close(j,true);break;default:h=true;break}return h});a(window).bind("resize.selectmenu",function(){a.proxy(b._refreshPosition,this)})},_init:function(){var p=this,f=this.options;var b=[];this.element.find("option").each(function(){b.push({value:a(this).attr("value"),text:p._formatText(a(this).text()),selected:a(this).attr("selected"),classes:a(this).attr("class"),parentOptGroup:a(this).parent("optgroup").attr("label"),bgImage:f.bgImage.call(a(this))})});var m=(p.options.style=="popup")?" ui-state-active":"";this.list.html("");for(var k=0;k<b.length;k++){var e=a('<li role="presentation"><a href="#" tabindex="-1" role="option" aria-selected="false">'+b[k].text+"</a></li>").data("index",k).addClass(b[k].classes).data("optionClasses",b[k].classes||"").bind("mouseup.selectmenu",function(j){if(p._safemouseup){var o=a(this).data("index")!=p._selectedIndex();p.index(a(this).data("index"));p.select(j);if(o){p.change(j)}p.close(j,true)}return false}).bind("click.selectmenu",function(){return false}).bind("mouseover.selectmenu focus.selectmenu",function(){p._selectedOptionLi().addClass(m);p._focusedOptionLi().removeClass(p.widgetBaseClass+"-item-focus ui-state-hover");a(this).removeClass("ui-state-active").addClass(p.widgetBaseClass+"-item-focus ui-state-hover")}).bind("mouseout.selectmenu blur.selectmenu",function(){if(a(this).is(p._selectedOptionLi().selector)){a(this).addClass(m)}a(this).removeClass(p.widgetBaseClass+"-item-focus ui-state-hover")});if(b[k].parentOptGroup){var l=p.widgetBaseClass+"-group-"+b[k].parentOptGroup.replace(/[^a-zA-Z0-9]/g,"");if(this.list.find("li."+l).size()){this.list.find("li."+l+":last ul").append(e)}else{a('<li role="presentation" class="'+p.widgetBaseClass+"-group "+l+'"><span class="'+p.widgetBaseClass+'-group-label">'+b[k].parentOptGroup+"</span><ul></ul></li>").appendTo(this.list).find("ul").append(e)}}else{e.appendTo(this.list)}this.list.bind("mousedown.selectmenu mouseup.selectmenu",function(){return false});if(f.icons){for(var h in f.icons){if(e.is(f.icons[h].find)){e.data("optionClasses",b[k].classes+" "+p.widgetBaseClass+"-hasIcon").addClass(p.widgetBaseClass+"-hasIcon");var n=f.icons[h].icon||"";e.find("a:eq(0)").prepend('<span class="'+p.widgetBaseClass+"-item-icon ui-icon "+n+'"></span>');if(b[k].bgImage){e.find("span").css("background-image",b[k].bgImage)}}}}}var d=(f.style=="dropdown")?true:false;this.newelement.toggleClass(p.widgetBaseClass+"-dropdown",d).toggleClass(p.widgetBaseClass+"-popup",!d);this.list.toggleClass(p.widgetBaseClass+"-menu-dropdown ui-corner-bottom",d).toggleClass(p.widgetBaseClass+"-menu-popup ui-corner-all",!d).find("li:first").toggleClass("ui-corner-top",!d).end().find("li:last").addClass("ui-corner-bottom");this.selectmenuIcon.toggleClass("ui-icon-triangle-1-s",d).toggleClass("ui-icon-triangle-2-n-s",!d);if(f.transferClasses){var q=this.element.attr("class")||"";this.newelement.add(this.list).addClass(q)}var g=this.element.width();if(f.style=="dropdown"){this.list.width((f.menuWidth)?f.menuWidth:((f.width)?f.width:g))}else{this.list.width((f.menuWidth)?f.menuWidth:((f.width)?f.width-f.handleWidth:g-f.handleWidth))}if(f.maxHeight){if(f.maxHeight<this.list.height()){this.list.height(f.maxHeight)}}else{if(!f.format&&(a(window).height()/3)<this.list.height()){f.maxHeight=a(window).height()/3;this.list.height(f.maxHeight)}}this._optionLis=this.list.find("li:not(."+p.widgetBaseClass+"-group)");if(this.element.attr("disabled")==true){this.disable()}this.index(this._selectedIndex());window.setTimeout(function(){p._refreshPosition()},200)},destroy:function(){this.element.removeData(this.widgetName).removeClass(this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").removeAttr("aria-disabled").unbind(".selectmenu");a(window).unbind(".selectmenu");a(document).unbind(".selectmenu");a("label[for="+this.newelement.attr("id")+"]").attr("for",this.element.attr("id")).unbind(".selectmenu");if(this.options.wrapperElement){this.newelement.find(this.options.wrapperElement).remove();this.list.find(this.options.wrapperElement).remove()}else{this.newelement.remove();this.list.remove()}this.element.show();a.Widget.prototype.destroy.apply(this,arguments)},_typeAhead:function(f,e){var b=this;if(!b._prevChar){b._prevChar=["",0]}var h=String.fromCharCode(f);c=h.toLowerCase();var d=false;function g(j,k){d=true;a(j).trigger(e);b._prevChar[1]=k}this.list.find("li a").each(function(j){if(!d){var k=a(this).text();if(k.indexOf(h)==0||k.indexOf(c)==0){if(b._prevChar[0]==h){if(b._prevChar[1]<j){g(this,j)}}else{g(this,j)}}}});this._prevChar[0]=h},_uiHash:function(){var b=this.index();return{index:b,option:a("option",this.element).get(b),value:this.element[0].value}},open:function(e){var d=this;var b=this.newelement.attr("aria-disabled");if(b!="true"){this._refreshPosition();this._closeOthers(e);this.newelement.addClass("ui-state-active");if(d.options.wrapperElement){this.list.parent().appendTo("body")}else{this.list.appendTo("body")}this.list.addClass(d.widgetBaseClass+"-open").attr("aria-hidden",false).find("li:not(."+d.widgetBaseClass+"-group):eq("+this._selectedIndex()+") a")[0].focus();if(this.options.style=="dropdown"){this.newelement.removeClass("ui-corner-all").addClass("ui-corner-top")}this._refreshPosition();this._trigger("open",e,this._uiHash())}},close:function(d,b){if(this.newelement.is(".ui-state-active")){this.newelement.removeClass("ui-state-active");this.list.attr("aria-hidden",true).removeClass(this.widgetBaseClass+"-open");if(this.options.style=="dropdown"){this.newelement.removeClass("ui-corner-top").addClass("ui-corner-all")}if(b){this.newelement.focus()}this._trigger("close",d,this._uiHash())}},change:function(b){this.element.trigger("change");this._trigger("change",b,this._uiHash())},select:function(b){this._trigger("select",b,this._uiHash())},_closeOthers:function(b){a("."+this.widgetBaseClass+".ui-state-active").not(this.newelement).each(function(){a(this).data("selectelement").selectmenu("close",b)});a("."+this.widgetBaseClass+".ui-state-hover").trigger("mouseout")},_toggle:function(d,b){if(this.list.is("."+this.widgetBaseClass+"-open")){this.close(d,b)}else{this.open(d)}},_formatText:function(b){return this.options.format?this.options.format(b):b},_selectedIndex:function(){return this.element[0].selectedIndex},_selectedOptionLi:function(){return this._optionLis.eq(this._selectedIndex())},_focusedOptionLi:function(){return this.list.find("."+this.widgetBaseClass+"-item-focus")},_moveSelection:function(e){var d=parseInt(this._selectedOptionLi().data("index"),10);var b=d+e;return this._optionLis.eq(b).trigger("mouseup")},_moveFocus:function(f){if(!isNaN(f)){var e=parseInt(this._focusedOptionLi().data("index")||0,10);var d=e+f}else{var d=parseInt(this._optionLis.filter(f).data("index"),10)}if(d<0){d=0}if(d>this._optionLis.size()-1){d=this._optionLis.size()-1}var b=this.widgetBaseClass+"-item-"+Math.round(Math.random()*1000);this._focusedOptionLi().find("a:eq(0)").attr("id","");this._optionLis.eq(d).find("a:eq(0)").attr("id",b).focus();this.list.attr("aria-activedescendant",b)},_scrollPage:function(d){var b=Math.floor(this.list.outerHeight()/this.list.find("li:first").outerHeight());b=(d=="up")?-b:b;this._moveFocus(b)},_setOption:function(b,d){this.options[b]=d;if(b=="disabled"){this.close();this.element.add(this.newelement).add(this.list)[d?"addClass":"removeClass"](this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").attr("aria-disabled",d)}},index:function(b){if(arguments.length){this.element[0].selectedIndex=b;this._refreshValue()}else{return this._selectedIndex()}},value:function(b){if(arguments.length){if(typeof b=="number"){this.index(b)}else{if(typeof b=="string"){this.element[0].value=b;this._refreshValue()}}}else{return this.element[0].value}},_refreshValue:function(){var e=(this.options.style=="popup")?" ui-state-active":"";var d=this.widgetBaseClass+"-item-"+Math.round(Math.random()*1000);this.list.find("."+this.widgetBaseClass+"-item-selected").removeClass(this.widgetBaseClass+"-item-selected"+e).find("a").attr("aria-selected","false").attr("id","");this._selectedOptionLi().addClass(this.widgetBaseClass+"-item-selected"+e).find("a").attr("aria-selected","true").attr("id",d);var b=this.newelement.data("optionClasses")?this.newelement.data("optionClasses"):"";var f=this._selectedOptionLi().data("optionClasses")?this._selectedOptionLi().data("optionClasses"):"";this.newelement.removeClass(b).data("optionClasses",f).addClass(f).find("."+this.widgetBaseClass+"-status").html(this._selectedOptionLi().find("a:eq(0)").html());this.list.attr("aria-activedescendant",d)},_refreshPosition:function(){var e=this.options;if(e.style=="popup"&&!e.positionOptions.offset){var d=this._selectedOptionLi();var b="0 -"+(d.outerHeight()+d.offset().top-this.list.offset().top)}this.list.css({zIndex:this.element.zIndex()}).position({of:e.positionOptions.of||this.newelement,my:e.positionOptions.my,at:e.positionOptions.at,offset:e.positionOptions.offset||b})}})})(jQuery);var game_id;var puzzle_id=null;var rackEditable=true;var boardEditable=true;var dictionaries;var langVar=0;var boardCache;var rackCache;var tileCache;var rackLength=7;var resultsScroller=null;var lastTileValue=null;var lastRackValue=null;var rack="";var board="";var resultsArray=new Array();var historicArray=new Array();var loadGamesArray=new Array();var loadGameIdx="";var editDesignsArray=new Array();var isEditDesigns=false;var currentLexicon="";var currentDesign="";var currentDesignName="";var currentTilesCounts;var currentUsedTilesCounts;var currentTilesScores;var currentRackLength;var currentBingos=new Array();var currentDirection=1;var currentGameName="New Game";var KEY_BACKSPACE=8;var KEY_TAB=9;var KEY_RETURN=13;var KEY_ESC=27;var KEY_LEFT=37;var KEY_UP=38;var KEY_RIGHT=39;var KEY_DOWN=40;var KEY_DELETE=46;var KEY_HOME=36;var KEY_END=35;var KEY_PAGEUP=33;var KEY_PAGEDOWN=34;var KEY_INSERT=45;var designsArray=new Array();var boardsArray=new Array();var isCustom=false;var next_action="";var idGameToDelete="";var idDesignToDelete="";var fileIsConnected="/includes/solver/isConnected.php";var fileLogin="/forum/ucp.php?mode=login";var fileLogout="/includes/solver/logOut.php";var fileRegister="/forum/ucp.php?mode=register";var fileLoadGames="/includes/solver/loadGames2.php";var fileSaveGame="/includes/solver/saveGame2.php";var fileDeleteGame="/includes/solver/deleteGame2.php";var fileLoadDesigns="/includes/solver/loadDesigns.php";var fileSaveDesign="/includes/solver/saveDesign2.php";var fileDeleDesign="/includes/solver/deleteDesign.php";var fileEditDesigns="/includes/solver/editDesigns.php";function updateScores(){$("#rackHolder").find("input").each(function(){if($(this).val()!==""){$(this).next().html(currentTilesScores[$(this).val()])}})}function updateAllTilesCount(){for(var a in currentUsedTilesCounts){currentUsedTilesCounts[a]=0}$("#board").find("input.tileValue").each(function(){if($(this).parent().hasClass("blank")===true){currentUsedTilesCounts[" "]++}else{currentUsedTilesCounts[$(this).val()]++}});$("#rackHolder").find("input").each(function(){if($(this).hasClass("rack")===true){currentUsedTilesCounts[$(this).val().toUpperCase()]++}});updateStats()}function updateTilesCount(b){b=b.toUpperCase();var d="";if(b==" "){d="#letter__"}else{d="#letter_"+b}var a=currentTilesCounts[b]-currentUsedTilesCounts[b];if(a<0){a=0}$(d).find(".tilesLeft").html(a)}function updateStats(){$("#gameDesign").find(".letter_stats").each(function(){var b=$(this).attr("id");b=b.charAt(7);if((b!="")&&(b!="_")){$(this).find(".tilesScoresCustom").val(currentTilesScores[b]);var a=currentTilesCounts[b]-currentUsedTilesCounts[b];if(a<0){a=0}$(this).find(".tilesLeft").html(a);$(this).find("input.tilesCountsCustom").val(currentTilesCounts[b])}else{if(b=="_"){var a=currentTilesCounts[" "]-currentUsedTilesCounts[" "];if(a<0){a=0}}}});$("#displayRackLength").children().find("input").val(currentRackLength);if(currentBingos[8]){$("#displayBingo8").css("display","block");$("#displayBingo7").children().find("input").val(currentBingos[7]);$("#displayBingo8").children().find("input").val(currentBingos[8])}else{$("#displayBingo8").css("display","none");$("#displayBingo7").children().find("input").val(currentBingos[7])}}function updateScoresAndCounts(){currentTilesScores=jQuery.extend(true,{},designsArray[currentDesignName]["tileScores"]);currentTilesCounts=jQuery.extend(true,{},designsArray[currentDesignName]["tileCounts"]);currentBingos=jQuery.extend(true,{},designsArray[currentDesignName]["bingos"]);currentRackLength=designsArray[currentDesignName]["rackLength"];updateScores();updateStats()}function updateRackLength(){var a;if(isCustom==false){a=designsArray[currentDesignName]["rackLength"]}else{a=currentRackLength}if(a=="8"){$("#rackContent").removeClass("rackLength7").addClass("rackLength8");$("#rack_7").css("display","inline").next().css("display","inline")}else{$("#rackContent").removeClass("rackLength8");$("#rack_7").css("display","none").removeClass("racktile").val("").next().html("").css("display","none")}}function updateBoard(){$("#gameName").html(currentGameName);$("#board div").each(function(){$(this).removeClass("b2L b2W b3L b3W b4L b4W b5L b5W")});var h=new Array();if(typeof(designsArray[currentDesignName].board)!="object"){var e=designsArray[currentDesignName].board;h=boardsArray[e]}else{h=designsArray[currentDesignName].board}var g=h.bonuses.length;var j;if(h.symmetric=="true"){for(var f=0;f<g;f++){var d=h.bonuses[f]["x"];var k=h.bonuses[f]["y"];var a=h.bonuses[f]["b"];a="b"+a;j="#s_"+d+"_"+k;$(j).parent().addClass(a);j="#s_"+(14-d)+"_"+k;$(j).parent().addClass(a);j="#s_"+d+"_"+(14-k);$(j).parent().addClass(a);j="#s_"+(14-d)+"_"+(14-k);$(j).parent().addClass(a);j="#s_"+k+"_"+d;$(j).parent().addClass(a);j="#s_"+(14-k)+"_"+d;$(j).parent().addClass(a);j="#s_"+k+"_"+(14-d);$(j).parent().addClass(a);j="#s_"+(14-k)+"_"+(14-d);$(j).parent().addClass(a)}}else{for(var f=0;f<g;f++){var d=h.bonuses[f]["x"];var k=h.bonuses[f]["y"];var a=h.bonuses[f]["b"];a="b"+a;j="#s_"+d+"_"+k;$(j).parent().addClass(a)}}}function clickChangeDesign(a){$("#resultsContent").empty();if(a=="saveDesign"){$("#select_design").val(currentDesign);$("#select_design-button>.ui-selectmenu-status").html($("#select_design option:selected").text());clickSaveDesign()}else{if(a=="editDesigns"){$("#select_design").val(currentDesign);$("#select_design-button>.ui-selectmenu-status").html($("#select_design option:selected").text());editDesigns()}else{if(a=="custom"){isCustom=true;updateDesign(a);resetResults()}else{isCustom=false;updateDesign(a);resetResults()}}}}function updateDesign(a){changeDesign(a);updateBoard();updateScoresAndCounts();updateRackLength()}var solverDesignArray=new Array("standard","lexulous","literati","wordscraper","wordfeud","wordsWithFriends","wordWise","wordsmith","droidWords");function changeDesign(a){if((jQuery.inArray(a,solverDesignArray)!=-1)||(a.substr(0,6)=="custom")){currentDesign=a;updateDesignName()}else{alert("Wrong design : "+a)}}function updateDesignName(){if(currentDesign.substr(0,6)=="custom"){currentDesignName=currentDesign}else{if(((currentLexicon=="ODS4")||(currentLexicon=="ODS5"))&&(designsArray[currentDesign+"_fr"]!=undefined)){currentDesignName=currentDesign+"_fr"}else{if((currentLexicon=="SWL11")&&(designsArray[currentDesign+"_nl"]!=undefined)){currentDesignName=currentDesign+"_nl"}else{if((currentLexicon=="ZINGA05")&&(designsArray[currentDesign+"_it"]!=undefined)){currentDesignName=currentDesign+"_it"}else{if(designsArray[currentDesign+"_en"]!=undefined){currentDesignName=currentDesign+"_en"}else{alert("Error -> updateDesignName : "+currentDesign+" : "+currentLexicon)}}}}}}function clickChangeLexicon(a){changeLexicon(a);updateScoresAndCounts();updateRackLength();resetResults()}var solverLexiconArray=new Array("ODS4","ODS5","TWL98","TWL06","CSW","CSW12","CSW07","ENABLE","OSPD4","ENABLE_WWF","YAWL","SOWPODS","SWL11","ZINGA05");function changeLexicon(a){if(jQuery.inArray(a,solverLexiconArray)!=-1){if(a=="SOWPODS"){a="CSW07"}if(a=="CSW"){a="CSW07"}currentLexicon=a;updateDesignName()}else{alert("Hum... Wrong lexicon : "+a)}}function toggleGameStat(){if($("#gameDesign").css("display")=="none"){$("#gameResults").css("display","none");$("#gameDesign").css("display","block")}else{$("#gameDesign").css("display","none");$("#gameResults").css("display","block")}}function clickNewGame(){clickClearBoard();clickClearRack()}function clickClearBoard(){$("#gameName").html("New Game");loadGameIdx="";clearBoard();resetResults();updateAllTilesCount()}function clearBoard(){$("#board input").each(function(a){$(this).val("");$(this).parent().removeClass("tile").removeClass("blank")})}function clickClearRack(){clearRack();resetResults();updateAllTilesCount()}function clearRack(){$("#rackHolder input").each(function(a){$(this).val("");$(this).removeClass("racktile");$(this).next().html("")})}function myCallback(d){$("#resultsContent").empty();if(d.status=="error"){displayMsg("<b>Error !</b><p style='text-align:justify;'>"+d.msg+"</pr>")}else{$("#gameResults h4").html("Results");var b=d.nb;var e="";if(b>100){e="<p>"+b+" solutions were found ! Showing the first 100.</p>";b=100}else{if(b==0){e="<p>No results...</p>"}else{e="<p>"+b+" solutions were found !</p>"}}$("#resultsContent").append(e);for(var a=0;a<b;a++){var e="<p class='result' id='result_"+a+"'>"+d.results.result[a].word+" - "+d.results.result[a].value+" points</p>";$("#resultsContent").append(e);resultsArray[a]=d.results.result[a]}$(".result").hover(function(){var f=$(this).attr("id").replace(/[a-z_]*/,"");showResult(f,false)},function(){var f=$(this).attr("id").replace(/[a-z_]*/,"");hideResult(f)});$(".result").click(function(){var f=$(this).attr("id").replace(/[a-z_]*/,"");$(this).addClass("selected");confirmMove(a)})}}function resetResults(){if(isEditDesigns==false){$("#gameResults h4").html("Results");$("#resultsContent").empty()}}function getResults(){resetResults();rack=getRack();board=getBoard();if($("#gameDesign").css("display")=="block"){$("#gameDesign").css("display","none");$("#gameResults").css("display","block");$("#showGameStat").attr("checked",false);$("#showGameStat").button("refresh")}var d="{";d+='"language":"EN",';d+='"rack":"'+rack+'",';d+='"board":"'+board+'",';d+='"lexicon":"'+currentLexicon+'",';if(currentDesign.substr(0,6)!="custom"){d+='"design":{"name":"'+currentDesignName+'"}}'}else{d+='"design":'+exportDesign("mycustom",0)+"}"}var b=new Array();b.push("word");b.push("wiki_short_definition");d='{"input_array":'+d+',"display_array":'+JSON.stringify(b)+',"option_array":{"what":"scrabble-solver","source":"DATABASE","output":"JSON"}}';var a="data="+$.jSEND(d);$.ajax({url:baseURL+"/includes/wordFinderCall.php",data:a,type:"post",dataType:"json",success:function(e){myCallback(e)}})}function clickClearMove(){clearMove();updateAllTilesCount();resetResults()}function clearMove(){for(var b=0;b<historicArray.length;b++){var a=historicArray[b]["x"];var g=historicArray[b]["y"];var d=historicArray[b]["letter"];var f="#s_"+a+"_"+g;$(f).parent().removeClass("tile");$(f).parent().removeClass("blank");$(f).val("");var e=$("#rackHolder").find("input[value='']:first");if(d.match(/[a-z]/)){e.val(" ")}else{e.val(d);e.next().html(currentTilesScores[e.val()])}e.addClass("racktile")}$("#resultsContent").children().removeClass("hide");$("#resultsContent").children().removeClass("selected");historicArray.length=0}function confirmMove(a){historicArray.length=0;$("#board").find(".movetile").each(function(d){$(this).removeClass("movetile");var b=$(this).children(":first");var f=b.attr("id").split("_");var e=new Array();e.letter=b.val();e.x=f[1];e.y=f[2];historicArray.push(e)});$("#resultsContent").children().addClass("hide");updateAllTilesCount()}function showResult(f){var a=resultsArray[f].word;var n=resultsArray[f].direction;var o=resultsArray[f].x;var l=resultsArray[f].y;var b=resultsArray[f].wiki_short_definition;var d;if((currentLexicon=="ODS5")||(currentLexicon=="ODS4")){d=a.toUpperCase()}else{if(currentLexicon=="TWL06"){d="<a href='"+baseURL+"/word-analyzer/twl06/"+a.toLowerCase()+"'>"+a.toUpperCase()+"</a>"}else{if(currentLexicon=="OSPD4"){d="<a href='"+baseURL+"/word-analyzer/ospd4/"+a.toLowerCase()+"'>"+a.toUpperCase()+"</a>"}else{d="<a href='"+baseURL+"/word-analyzer/csw/"+a.toLowerCase()+"'>"+a.toUpperCase()+"</a>"}}}if(b!=""){$("#wordDefinition").html(d+" : "+b)}else{$("#wordDefinition").html(a.toUpperCase()+" : no definition available for now")}for(var e=0;e<a.length;e++){var m="#s_"+o+"_"+l;if($(m).parent().hasClass("tile")){}else{$(m).parent().addClass("tile");$(m).parent().addClass("movetile");$(m).val(a.charAt(e));if(a.charAt(e).match(/[a-z]/)){$(m).parent().addClass("blank")}var j="";var h;if(a.charAt(e).match(/[a-z]/)){$("#rackHolder").find("input").each(function(){if($(this).val()==" "){h=$(this)}})}else{j="input[value='"+a.charAt(e)+"']:first";var h=$("#rackHolder").find(j)}var g=h.next().next();while(g.hasClass("rack")&&g.val()!=""){h.val(g.val());h.next().html(g.next().html());h=g;g=h.next().next()}h.removeClass("racktile");h.val("");h.next().html("")}if(n==0){o++}else{l++}}}function hideResult(d){var h=resultsArray[d].word;var g=resultsArray[d].direction;var a=resultsArray[d].x;var j=resultsArray[d].y;for(var b=0;b<h.length;b++){var f="#s_"+a+"_"+j;if($(f).parent().hasClass("movetile")){$(f).parent().removeClass("tile");$(f).parent().removeClass("movetile");$(f).parent().removeClass("blank");$(f).val("");var e=$("#rackHolder").find("input[value='']:first");if(h.charAt(b).match(/[a-z]/)){e.val(" ")}else{e.val(h.charAt(b))}e.addClass("racktile");if(e.val()!=" "){e.next().html(currentTilesScores[e.val()])}}if(g==0){a++}else{j++}}}function showGame(a){historicArray.length=0;board=loadGamesArray[a].board;rack=loadGamesArray[a].rack;currentDesign=loadGamesArray[a].design;currentLexicon=loadGamesArray[a].lexicon;currentGameName=loadGamesArray[a].name;updateDesignName();$("#select_design").val(currentDesign);if(currentDesign!=$("#select_design").val()){$("#select_design").val("custom");$("#select_design-button>.ui-selectmenu-status").html($("#select_design option:selected").text())}else{$("#select_design-button>.ui-selectmenu-status").html($("#select_design option:selected").text())}$("#select_lexicon").val(currentLexicon);$("#select_lexicon-button>.ui-selectmenu-status").html($("#select_lexicon option:selected").text());updateBoard();updateRackLength();setRack(rack);setBoard(board)}function hideGame(a){showGame(-1)}function confirmGame(a){resetResults();updateScoresAndCounts()}function getRack(){var a="";$("#rackHolder").find("input").each(function(b){a+=$(this).val()});a=a.replace(/ /g,"*");return a}function getBoard(){var a="";$(".tileValue").each(function(b){if($(this).val()==""){a+="-"}else{a+=$(this).val()}});return a}function setRack(a){clearRack();var e=a.length;for(var b=0;b<e;b++){var d=a.charAt(b);$("#rack_"+b).val(d).addClass("racktile")}}function setBoard(b){clearBoard();var f=0;for(var g=0;g<15;g++){for(var a=0;a<15;a++){var e="#s_"+a+"_"+g;var d=b.charAt(f);if(d!="-"){$(e).parent().addClass("tile");$(e).val(d);if(d.match(/[a-z]/)){$(e).parent().addClass("blank")}}f++}}}function setupObservers(){$(".tileValue").focus(function(e){$(this).parent().addClass("selected");if(currentDirection==1){$(this).parent().addClass("right")}else{$(this).parent().addClass("down")}});$(".tileValue").blur(function(e){$(this).parent().removeClass("selected");$(this).parent().removeClass("right");$(this).parent().removeClass("down")});$(".tileValue").keyup(function(e){resetResults();var key=e.which||e.keyCode;var str=$(this).attr("id").split("_");var x=parseInt(str[1]);var y=parseInt(str[2]);if(49<=e.which&&e.which<=53){setCustom();var nextClass="";if(e.which==49){$(this).parent().removeClass("b2L b2W b3L b3W b4L b4W b5L b5W")}else{if(e.which==50){if($(this).parent().hasClass("b2L")){nextClass="b2W"}else{nextClass="b2L"}}else{if(e.which==51){if($(this).parent().hasClass("b3L")){nextClass="b3W"}else{nextClass="b3L"}}else{if(e.which==52){if($(this).parent().hasClass("b4L")){nextClass="b4W"}else{nextClass="b4L"}}else{if(e.which==53){if($(this).parent().hasClass("b5L")){nextClass="b5W"}else{nextClass="b5L"}}}}}}$(this).parent().removeClass("b2L b2W b3L b3W b4L b4W b5L b5W");$(this).parent().addClass(nextClass)}if((key==KEY_LEFT)||(key==KEY_RIGHT)||(key==KEY_UP)||(key==KEY_DOWN)){if(key==KEY_LEFT){if(x>0){$(this).parent().removeClass("right");$(this).parent().removeClass("down");$(this).parent().removeClass("selected");str="#s_"+eval(x-1)+"_"+y;$(str).focus()}}else{if(key==KEY_RIGHT){if(currentDirection==1){if(x<14){$(this).parent().removeClass("right");$(this).parent().removeClass("down");$(this).parent().removeClass("selected");str="#s_"+eval(x+1)+"_"+y;$(str).focus()}}else{currentDirection=1;$(this).parent().removeClass("down");$(this).parent().addClass("right")}}else{if(key==KEY_DOWN){if(currentDirection==0){if(y<14){$(this).parent().removeClass("right");$(this).parent().removeClass("down");$(this).parent().removeClass("selected");str="#s_"+x+"_"+eval(y+1);$(str).focus()}}else{currentDirection=0;$(this).parent().removeClass("right");$(this).parent().addClass("down")}}else{if(key==KEY_UP){if(y>0){$(this).parent().removeClass("right");$(this).parent().removeClass("down");$(this).parent().removeClass("selected");str="#s_"+x+"_"+eval(y-1);$(str).focus()}}}}}}if((65<=e.which&&e.which<=65+25)||(97<=e.which&&e.which<=97+25)){if($(this).hasClass("blank")==false){if($(this).val()!=""){currentUsedTilesCounts[$(this).val().toUpperCase()]--;updateTilesCount($(this).val().toUpperCase())}currentUsedTilesCounts[String.fromCharCode(e.keyCode).toUpperCase()]++;updateTilesCount(String.fromCharCode(e.keyCode).toUpperCase())}$(this).parent().addClass("tile");$(this).val(String.fromCharCode(e.keyCode));if((currentDirection==1)&&(x<14)){$(this).parent().removeClass("right");$(this).parent().removeClass("down");$(this).parent().removeClass("selected");str="#s_"+eval(x+1)+"_"+y;$(str).focus()}else{if((currentDirection==0)&&(y<14)){$(this).parent().removeClass("right");$(this).parent().removeClass("down");$(this).parent().removeClass("selected");str="#s_"+x+"_"+eval(y+1);$(str).focus()}}}else{if((key==KEY_DELETE)||(key==KEY_BACKSPACE)){if($(this).val()!=""){if($(this).hasClass("blank")){currentUsedTilesCounts[" "]--;updateTilesCount(" ")}else{currentUsedTilesCounts[$(this).val().toUpperCase()]--;updateTilesCount($(this).val().toUpperCase())}$(this).val("");$(this).parent().removeClass("tile");$(this).parent().removeClass("blank")}if((currentDirection==1)&&(x>0)){$(this).parent().removeClass("right");$(this).parent().removeClass("down");$(this).parent().removeClass("selected");str="#s_"+eval(x-1)+"_"+y;$(str).focus()}else{if((currentDirection==0)&&(y>0)){$(this).parent().removeClass("right");$(this).parent().removeClass("down");$(this).parent().removeClass("selected");str="#s_"+x+"_"+eval(y-1);$(str).focus()}}}else{if(key==32){var value=$(this).val();if(value!=""){if($(this).parent().hasClass("blank")==false){$(this).parent().addClass("blank");$(this).val(value.toLowerCase());currentUsedTilesCounts[$(this).val().toUpperCase()]--;updateTilesCount($(this).val().toUpperCase());currentUsedTilesCounts[" "]++;updateTilesCount(" ")}else{$(this).parent().removeClass("blank");$(this).val(value.toUpperCase());currentUsedTilesCounts[$(this).val().toUpperCase()]++;updateTilesCount($(this).val().toUpperCase());currentUsedTilesCounts[" "]--;updateTilesCount(" ")}}}}}});$("#rackHolder").find("input").click(function(e){var current=$(this);while(current.prev().prev().val()==""){current=current.prev().prev();if(current.attr("id")=="rack_0"){break}}current.focus()});$("#rackHolder").find("input").keyup(function(e){var key=e.which||e.keyCode;resetResults();if((65<=e.which&&e.which<=65+25)||(97<=e.which&&e.which<=97+25)||(e.which==32)){$(this).addClass("racktile");if($(this).val()!=""){currentUsedTilesCounts[$(this).val().toUpperCase()]--;updateTilesCount($(this).val().toUpperCase())}currentUsedTilesCounts[String.fromCharCode(e.keyCode).toUpperCase()]++;updateTilesCount(String.fromCharCode(e.keyCode).toUpperCase());$(this).val(String.fromCharCode(e.keyCode));if(e.which!=32){$(this).next().html(currentTilesScores[String.fromCharCode(e.keyCode)])}else{$(this).next().html("")}if($(this).next().next().hasClass("rack")){$(this).next().next().focus()}}else{if((key==KEY_DELETE)||(key==KEY_BACKSPACE)){var current=$(this);var next=current.next().next();if($(this).val()!=""){currentUsedTilesCounts[current.val().toUpperCase()]--;updateTilesCount(current.val().toUpperCase());while(next.hasClass("rack")&&next.val()!=""){current.val(next.val());current.next().html(next.next().html());current=next;next=current.next().next()}current.removeClass("racktile");current.val("");current.next().html("")}else{var prev=current.prev().prev();if(prev.hasClass("rack")){currentUsedTilesCounts[prev.val().toUpperCase()]--;updateTilesCount(prev.val().toUpperCase());prev.removeClass("racktile");prev.val("");prev.next().html("");prev.focus()}}}}})}function openLexiconHelp(){$("#dialog_lexicon").dialog("open");return false}function loadGamesCallBack(e){$("#resultsContent").empty();if(e.status=="error"){displayMsg("<b>Error !</b><p style='text-align:justify;'>"+e.msg+"</pr>")}if(e.status=="login"){next_action="load";getLoginForm(false);$("#dialog_login").dialog("open")}else{$("#gameResults h4").html("Load games");if($("#gameDesign").css("display")=="block"){$("#gameDesign").css("display","none");$("#gameResults").css("display","block");$("#showGameStat").attr("checked",false);$("#showGameStat").button("refresh")}var d=e.nb_games;var f="";if(d>0){f="<p>"+d+" games were found.</p>"}else{if(d==0){f="<p>No saved games yet.</p>"}}$("#resultsContent").append(f);loadGamesArray.length=0;loadGamesArray[-1]=new Array();loadGamesArray[-1]["rack"]=getRack();loadGamesArray[-1]["board"]=getBoard();loadGamesArray[-1]["lexicon"]=currentLexicon;loadGamesArray[-1]["design"]=currentDesign;loadGamesArray[-1]["name"]=currentGameName;for(var b=0;b<d;b++){var a=e.games[b].date;a=a.replace(/[0-9]{2}:[0-9]{2}:[0-9]{2}/,"");var f="<p title='Load game' class='result' id='game_"+b+"'>"+a+" - "+e.games[b].name+"</p><div title='Delete game' class='delete_game' id='delete_game_"+b+"'>X</div>";$("#resultsContent").append(f);if(typeof(e.games[b].design)=="object"){designsArray[e.games[b].design.name]=e.games[b].design;e.games[b].design=e.games[b].design.name}loadGamesArray[b]=e.games[b]}$(".result").hover(function(){var g=$(this).attr("id").replace(/[a-z_]*/,"");showGame(g)},function(){var g=$(this).attr("id").replace(/[a-z_]*/,"");hideGame(g)});$(".result").click(function(){var g=$(this).attr("id").replace(/[a-z_]*/,"");$(this).addClass("selected");loadGameIdx=g;confirmGame(g)});$(".delete_game").click(function(){var g=$(this).attr("id").replace(/[a-z_]*/,"");deleteGame(e.games[g].id,false)})}}function clickLoadGames(){$("#gameResults h4").html("Load games");$("#resultsContent").empty();$.ajax({url:baseURL+fileLoadGames,data:"",dataType:"jsonp",jsonpCallback:"loadGamesCallBack"})}function saveGameCallBack(a){if(a.status=="login"){$("#dialog_save").dialog("close");$("#dialog_save_as").dialog("close");next_action="save";getLoginForm(false);$("#dialog_login").dialog("open")}else{if(a.status=="error"){displayMsg("<b>Error !</b><p style='text-align:justify;'>"+a.msg+"</pr>")}else{$("#gameName").html(a.game_name);loadGameIdx=-2;loadGameIdx=loadGamesArray.length;loadGamesArray[loadGameIdx]=new Array();loadGamesArray[loadGameIdx].id=a.game_id;loadGamesArray[loadGameIdx].name=a.game_name;$("#dialog_save").dialog("close");$("#dialog_save_as").dialog("close");displayMsg("<br/><center><h2>Game saved !</h2></center>",1)}}}function deleteGameCallBack(e){if(e.status=="login"){next_action="";getLoginForm(false);$("#dialog_login").dialog("open")}else{if(e.status=="error"){displayMsg("<b>Error !</b><p style='text-align:justify;'>"+e.msg+"</pr>")}else{var b=e.id;var d;for(var a in loadGamesArray){if(loadGamesArray[a].id==b){d=a}}delete loadGamesArray[d];$("#game_"+d).fadeOut("slow",function(){$(this).remove()});$("#delete_game_"+d).fadeOut("slow",function(){$(this).remove()});displayMsg("<br/><center><h2>Game delete !</h2></center>",1)}}}function deleteGame(a,b){if(b==false){idGameToDelete=a;$("#dialog_delete_game").dialog("open")}else{$.ajax({url:baseURL+fileDeleteGame,data:"idGame="+a,dataType:"jsonp",jsonpCallback:"deleteGameCallBack"})}}function clickLogin(){$.ajax({url:baseURL+fileIsConnected,success:function(a){if(a==1){$("#buttonLogin").css("display","none");$("#buttonLogout").css("display","inline")}else{next_action="login";getLoginForm(false);$("#dialog_login").dialog("open")}}})}function clickLogout(){$.ajax({url:baseURL+fileLogout,success:function(a){if(a==1){$("#buttonLogin").css("display","inline");$("#buttonLogout").css("display","none");$("#select_design_custom option[value*='custom-']").remove();$("#select_design").selectmenu({style:"dropdown",width:150,maxheight:500});$("#select_design").val(currentDesign);if(currentDesign!=$("#select_design").val()){$("#select_design").val("custom");$("#select_design-button>.ui-selectmenu-status").html($("#select_design option:selected").text());setCustom()}resetResults()}}})}function createGameSelect(){$("#game_select").empty();size=loadGamesArray.length;$("#game_select").append('<option value="0">Please select a game to overwrite</option>');for(i in loadGamesArray){if(i>=0){$("#game_select").append('<option value="'+loadGamesArray[i].id+'">'+loadGamesArray[i].name+"</option>")}}$("#game_select").change(function(){$("#game_name").val($("#game_select option:selected").text())})}function clickSaveGame(a){$.ajax({url:baseURL+fileIsConnected,success:function(d){if(d==1){if((a==0)||(loadGameIdx=="")){$("#dialog_save_as").dialog("open")}else{var e=loadGamesArray[loadGameIdx].id;var b=loadGamesArray[loadGameIdx].name;saveGame(b,e)}}else{if((a==0)||(loadGameIdx=="")){next_action="save_as"}else{next_action="save"}getLoginForm(false);$("#dialog_login").dialog("open")}}})}function saveGame(h,b){resetResults();rack=getRack();board=getBoard();var f="{";f+='"name":"'+h+'",';f+='"rack":"'+rack+'",';f+='"board":"'+board+'",';f+='"lexicon":"'+currentLexicon+'",';if(b!=""){f+='"idGame":"'+b+'",'}var d;if(currentDesign.substr(0,6)!="custom"){g+='"design":{"name":"'+currentDesignName+'"}}'}else{g+='"design":'+exportDesign("mycustom",1)+"}"}if(isCustom==false){if(currentDesign.substr(0,6)=="custom"){var a=new RegExp(/-([0-9]+)$/img);var e=a.exec(currentDesign);if(e!=null){d=e[1]}else{displayMsg("Save Game Error : custom Design Id not found !");return}}else{d=currentDesign}f+='"design":"'+d+'"}'}else{f+='"design":'+exportDesign("mycustom",1)+"}"}var g=$.jSEND(f);$.ajax({url:baseURL+fileSaveGame,type:"POST",data:"data="+g,dataType:"jsonp",jsonpCallback:"saveGameCallBack"})}function editDesignsCallBack(e){$("#resultsContent").empty();if(e.status=="error"){displayMsg("<b>Error !</b><p style='text-align:justify;'>"+e.msg+"</pr>")}if(e.status=="login"){next_action="edit_designs";getLoginForm(false);$("#dialog_login").dialog("open")}else{if($("#gameDesign").css("display")=="block"){$("#gameDesign").css("display","none");$("#gameResults").css("display","block");$("#showGameStat").attr("checked",false);$("#showGameStat").button("refresh")}$("#gameResults h4").html("Edit designs");var d=e.nb_designs;var f="";if(d>1){f="<p>"+d+" designs were found.</p>"}else{if(d==1){f="<p>1 design was found.</p>"}else{if(d==0){f="<p>No custom design saved yet.</p>"}}}$("#resultsContent").append(f);editDesignsArray[-1]=new Array();editDesignsArray[-1]=currentDesign;isEditDesigns=true;for(var b=0;b<d;b++){var a=e.designs[b].date;var g=e.designs[b].id;a=a.replace(/[0-9]{2}:[0-9]{2}:[0-9]{2}/,"");var f="<p title='Load design' class='result' id='design_"+g+"'>"+a+" - Custom - "+e.designs[b].name+"</p><div title='Delete design' class='delete_game' id='delete_design_"+g+"'>X</div>";$("#resultsContent").append(f);editDesignsArray[g]=new Array();editDesignsArray[g]["name"]="custom-"+e.designs[b].name+"-"+e.designs[b].id;editDesignsArray[g]["clean_name"]="Custom - "+e.designs[b].name}$(".result").hover(function(){var h=$(this).attr("id").replace(/[a-z_]*/,"");$("#select_design-button>.ui-selectmenu-status").html(editDesignsArray[h]["clean_name"]);updateDesign(editDesignsArray[h]["name"])},function(){$("#select_design-button>.ui-selectmenu-status").html($("#select_design option:selected").text());updateDesign(editDesignsArray[-1])});$(".result").click(function(){isEditDesigns=false;var h=$(this).attr("id").replace(/[a-z_]*/,"");clickChangeDesign(editDesignsArray[h]["name"])});$(".delete_game").click(function(){var h=$(this).attr("id").replace(/[a-z_]*/,"");deleteDesign(h,false)})}}function editDesigns(){$("#gameResults h4").html("Edit designs");$("#resultsContent").empty();$.ajax({url:baseURL+fileEditDesigns,data:"",dataType:"jsonp",jsonpCallback:"editDesignsCallBack"})}function deleteDesignCallBack(b){if(b.status=="login"){next_action="";getLoginForm(false);$("#dialog_login").dialog("open")}else{if(b.status=="error"){displayMsg("<b>Error !</b><p style='text-align:justify;'>"+b.msg+"</pr>")}else{var a=b.id;$("#design_"+a).fadeOut("slow",function(){$(this).remove()});$("#delete_design_"+a).fadeOut("slow",function(){$(this).remove()});$("#select_design_custom option[value='"+editDesignsArray[a]["name"]+"']").remove();if(editDesignsArray[-1]==editDesignsArray[a]["name"]){setCustom();designsArray.custom=designsArray[editDesignsArray[a]["name"]]}$("#select_design").selectmenu({style:"dropdown",width:150,maxHeight:500});displayMsg("<br/><center><h2>Design delete !</h2></center>")}}}function deleteDesign(a,b){if(b==false){idDesignToDelete=a;$("#dialog_delete_design").dialog("open")}else{$.ajax({url:baseURL+fileDeleDesign,data:"idDesign="+a,dataType:"jsonp",jsonpCallback:"deleteDesignCallBack"})}}function saveDesignCallBack(a){if(a.status=="login"){$("#dialog_save_design").dialog("close");next_action="save_design";getLoginForm(false);$("#dialog_login").dialog("open")}else{if(a.status=="error"){displayMsg("<b>Error !</b><p style='text-align:justify;'>"+a.msg+"</pr>")}else{$("#dialog_save_design").dialog("close");$("#select_design_custom").append($("<option></option>").val("custom-"+a.name+"-"+a.id).html("Custom - "+a.name));$("#select_design").val("custom-"+a.name+"-"+a.id);designsArray["custom-"+a.name+"-"+a.id]=JSON.parse(exportDesign(a.name,1));$("#select_design").selectmenu({style:"dropdown",width:150,maxHeight:500});$("#select_design-button>.ui-selectmenu-status").html($("#select_design option:selected").text());currentDesign="custom-"+a.name+"-"+a.id;currentDesignName="custom-"+a.name+"-"+a.id;displayMsg("<br/><center><h2>Design saved !</h2></center>")}}}function saveDesign(d){var a=exportDesign(d,1);var b="data="+$.jSEND(a);$.ajax({url:baseURL+fileSaveDesign,data:b,dataType:"jsonp",type:"post",jsonpCallback:"saveDesignCallBack"})}function clickSaveDesign(){$.ajax({url:baseURL+fileIsConnected,success:function(a){if(a==1){$("#dialog_save_design").dialog("open")}else{next_action="save_design";getLoginForm(false);$("#dialog_login").dialog("open")}}})}function updateTips(a){$(".validateTips").text(a).addClass("ui-state-highlight");setTimeout(function(){$(".validateTips").removeClass("ui-state-highlight",1500)},500)}function nextAction(){loadDesigns();$("#buttonLogin").css("display","none");$("#buttonLogout").css("display","inline");if(next_action=="load"){next_action="";clickLoadGames()}else{if(next_action=="save"){next_action="";clickSaveGame(1)}else{if(next_action=="save_as"){next_action="";clickSaveGame(0)}else{if(next_action=="save_design"){next_action="";clickSaveDesign()}else{if(next_action=="edit_designs"){next_action="";editDesigns()}}}}}}function processLoginForm(d){d=d.replace(/\.\/ucp\.php/gi,"../forum/ucp.php");var f=new RegExp(/<form (.|\n)*?<\/form>/img);var b=f.exec(d);b=f.exec(d);if(b!=null){$("#dialog_login").empty();$("#dialog_login").append(b[0]);var a='<input type="hidden" name="login" value="Login" />';var e=$("#login input[name='login']");e.after(a).remove();$("#login .dashed").remove();$("#login .button2").remove();$("#login a").attr("target","_blank")}else{$("#dialog_login").empty();$("#dialog_login").append("<center>Thank you for logging in !</center>");$("#dialog_login").parent().delay(500).fadeOut("slow",function(){$("#dialog_login").dialog("close");nextAction()})}}function getLoginForm(a){if(a){$.post(baseURL+fileLogin,$("#login").serialize(),function(b){processLoginForm(b)})}else{$.ajax({type:"POST",url:baseURL+fileLogin,contentType:"",success:function(b){processLoginForm(b)}})}}function displayMsg(b,a){if(a==1){$("#dialog_message").html(b);$("#dialog_message").dialog("open");$("#dialog_message").parent().delay(500).fadeOut("slow",function(){$("#dialog_message").dialog("close")})}else{$("#dialog_message").html(b).fadeIn("slow",function(){$("#dialog_message").dialog("open")});$("#dialog_message").parent().find("button:last").focus()}}function processConfiguration(){for(var a=0;a<SolverConfiguration.Boards.length;a++){boardsArray[SolverConfiguration.Boards[a].name]=SolverConfiguration.Boards[a]}for(var a=0;a<SolverConfiguration.Designs.length;a++){designsArray[SolverConfiguration.Designs[a].name]=SolverConfiguration.Designs[a]}}function setInputObservers(){$("#rackLengthInput").change(function(){var a=$(this).val();if((a!=7)&&(a!=8)){$(this).val("7")}currentRackLength=$(this).val();if($(this).val()==7){$("#displayBingo8").css("display","none");currentBingos[7]=$("#bingo7Input").val();delete currentBingos[8]}else{if($(this).val()==8){$("#displayBingo8").css("display","block");currentBingos[7]=$("#bingo7Input").val();currentBingos[8]=$("#bingo8Input").val()}}setCustom();updateRackLength()});$("#bingo7Input,#bingo8Input,.tilesScoresCustom,.tilesCountsCustom").change(function(){setCustom();var a=parseInt($(this).val());if(a<0){$(this).val("0")}else{if(a>=100){$(this).val("99")}else{if((a>=0)&&(a<=99)){$(this).val(a)}else{$(this).val("0")}}}if($(this).hasClass("tilesScoresCustom")){currentTilesScores[$(this).parent().find(".remainingtile").html()]=$(this).val();updateScores()}else{if($(this).hasClass("tilesCountsCustom")){currentTilesCounts[$(this).parent().find(".remainingtile").html()]=$(this).val();updateTilesCount($(this).parent().find(".remainingtile").html())}else{if($(this).attr("id").substr(0,5)=="bingo"){var b=$(this).attr("id").substr(5,1);if((b==7)||(b==8)){currentBingos[b]=$(this).val()}else{alert("Error : issue with bingos in function setInputObservers()")}}}}});$(".customBoard").change(function(){setCustom()})}function setCustom(){isCustom=true;currentDesign="custom";currentDesignName="custom";$("#select_design").val(currentDesign);$("#select_design-button>.ui-selectmenu-status").html($("#select_design option:selected").text())}function exportDesign(d,a){var e="{";e+='"name":"'+d+'",';e+='"rackLength":"'+currentRackLength+'",';e+='"bingos":'+JSON.stringify(currentBingos)+",";if(a==1){e+='"tileCounts":'+JSON.stringify(currentTilesCounts)+","}e+='"tileScores":'+JSON.stringify(currentTilesScores)+",";e+='"lexicon":"'+currentLexicon+'",';var b=getBonuses();e+='"board":{';e+='"name":"custom",';e+='"symmetric":"false",';e+='"bonuses":['+b+"]";e+="}";e+="}";return e}function getBonuses(){var d="";for(var a=0;a<15;a++){for(var f=0;f<15;f++){var b="#s_"+a+"_"+f;b=$(b).parent();var e="";if(b.hasClass("b2W")){e="2W"}else{if(b.hasClass("b2L")){e="2L"}else{if(b.hasClass("b3W")){e="3W"}else{if(b.hasClass("b3L")){e="3L"}else{if(b.hasClass("b4W")){e="4W"}else{if(b.hasClass("b4L")){e="4L"}else{if(b.hasClass("b5W")){e="5W"}else{if(b.hasClass("b5L")){e="5L"}}}}}}}}if(e!=""){d+='{"x":"'+a+'","y":"'+f+'","b":"'+e+'"},'}}}d=d.substr(0,d.length-1);return d}function loadDesignsCallBack(d){$("#select_design_custom option[value*='custom-']").remove();if(d.status=="login"){}else{if(d.status=="error"){displayMsg("<b>Error !</b><p style='text-align:justify;'>"+d.msg+"</pr>")}else{var b=d.nb_designs;if(b>0){for(var a=0;a<b;a++){$("#select_design_custom").append($("<option></option>").val("custom-"+d.designs[a].name+"-"+d.designs[a].id).html("Custom - "+d.designs[a].name));designsArray["custom-"+d.designs[a].name+"-"+d.designs[a].id]=jQuery.extend(true,{},d.designs[a])}$("#select_design").selectmenu({style:"dropdown",width:150,maxHeight:500})}}}}function loadDesigns(){$.ajax({url:baseURL+fileLoadDesigns,dataType:"jsonp",jsonpCallback:"loadDesignsCallBack"})}function globalAjaxCursorChange(){$("html").ajaxSend(function(){$(this).addClass("busy")});$("html").ajaxComplete(function(){$(this).removeClass("busy")})}$(document).ready(function(){setupObservers();setInputObservers();processConfiguration();globalAjaxCursorChange();$("#buttonLogin").button();$("#buttonLogout").button();$("#clear_action").buttonset();$("#do_action").buttonset();$("#select_lexicon").selectmenu({style:"dropdown",width:115,maxHeight:500});$("#select_design").selectmenu({style:"dropdown",width:150,maxHeight:500});$("#select_lexicon").change(function(){clickChangeLexicon($("#select_lexicon").val())});$("#select_design").change(function(){clickChangeDesign($("#select_design").val())});$("#dialog_lexicon").dialog({autoOpen:false,modal:true,width:400});$("#dialog_save").dialog({autoOpen:false,modal:true,width:400,buttons:{Save:function(){var b=loadGamesArray[loadGameIdx].id;var a=loadGamesArray[loadGameIdx].name;saveGame(a,b)},"Save as":function(){var b=$("#save_game_name").val();var a=new RegExp(/^[a-z]([0-9a-z_])+$/i);if(!a.test(b)){updateTips("The game name must consist of a-z, 0-9, underscores, begin with a letter.")}else{saveGame(b,"")}},Cancel:function(){$("#dialog_save").dialog("close")}}});$("#dialog_save_as").dialog({autoOpen:false,modal:true,width:400,buttons:{"Save as":function(){var b=$("#save_as_game_name").val();var a=new RegExp(/^[a-z]([0-9a-z_])+$/i);if(!a.test(b)){updateTips("The game name must consist of a-z, 0-9, underscores, begin with a letter.")}else{saveGame(b,"")}},Cancel:function(){$("#dialog_save_as").dialog("close")}}});$("#dialog_save_design").dialog({autoOpen:false,modal:true,width:400,buttons:{Ok:function(){var b=$("#design_name").val();var a=new RegExp(/^[a-z]([0-9a-z_])+$/i);if(!a.test(b)){updateTips("The game name must consist of a-z, 0-9, underscores, begin with a letter.")}else{saveDesign(b)}},Cancel:function(){$("#dialog_save_design").dialog("close")}}});$("#dialog_login").dialog({modal:true,width:600,autoOpen:false,buttons:{Login:function(){getLoginForm(true)},Register:function(){window:open(baseURL+fileRegister);return false}},close:function(){}});$("#dialog_message").dialog({modal:true,width:400,autoOpen:false,buttons:{Ok:function(){$("#dialog_message").parent().fadeOut("slow",function(){$("#dialog_message").dialog("close")})}}});$("#dialog_delete_game").dialog({modal:true,width:400,autoOpen:false,buttons:{Ok:function(){deleteGame(idGameToDelete,true);$("#dialog_delete_game").dialog("close")},Cancel:function(){idGameToDelete="";$("#dialog_delete_game").dialog("close")}},close:function(){idGameToDelete=""}});$("#dialog_delete_design").dialog({modal:true,width:400,autoOpen:false,buttons:{Ok:function(){deleteDesign(idDesignToDelete,true);$("#dialog_delete_design").dialog("close")},Cancel:function(){idDesignToDelete="";$("#dialog_delete_design").dialog("close")}},close:function(){idDesignToDelete=""}});$("#dialog_save").submit(function(a){$(this).parent().find("button:first").click();return false});$("#dialog_save_design").submit(function(a){$(this).parent().find("button:first").click();return false});$("#dialog_save_as").find("input").keypress(function(a){if((a.which&&a.which==13)||(a.keyCode&&a.keyCode==13)){a.preventDefault();$("body").find('span:contains("Save as")').parent().click();return false}});currentDesign="standard";currentDesignName="standard_en";currentLexicon="TWL06";currentDesign=$("#select_design").val();currentLexicon=$("#select_lexicon").val();updateDesignName();$("#showGameStat").attr("checked",false);$("#showGameStat").removeAttr("checked");currentTilesCounts=designsArray[currentDesignName]["tileCounts"];currentUsedTilesCounts={A:0,B:0,C:0,D:0,E:0,F:0,G:0,H:0,I:0,J:0,K:0,L:0,M:0,N:0,O:0,P:0,Q:0,R:0,S:0,T:0,U:0,V:0,W:0,X:0,Y:0,Z:0," ":0};currentTilesScores=designsArray[currentDesignName]["tileScores"];clearBoard();clearRack();updateBoard();updateScoresAndCounts();getLoginForm(false);loadDesigns();$("#resultsContent").ajaxError(function(){$(this).empty();$(this).append("Sorry there is an error. Please try later.")})});
