var scorerecord=$.template('<tr class="scorerec ${altClass}"><td style="vertical-align:middle;"><a href="http://www.facebook.com/profile.php?id=${fbuid}"><img src="${fbavatar}" class="avatar" width="40px" height="40px"/></a><a href="http://www.facebook.com/profile.php?id=${fbuid}" class="link">${fbname}</a></td><td><p class="clink">${score}</p></td></tr>');var scorerecorde=$.template('<tr class="scorerec"><td colspan="2">${msg}</td></tr>');var sessTime=-1;var sessDiff="";var solutionTime=null;var currentNumber=1;var cookieName="sudoku_save_"+sudokuId;if(sudokuTopic!=null){cookieName="wordoku_save_"+sudokuId}var sudokuTimer=new Date();$(document).ready(function(){resetSudoku();loadMoves()});function resetTimer(A){sudokuTimer=A;$("#timer").countdown("destroy");$("#timer").countdown({since:sudokuTimer,compact:true})}jQuery.fn.conflicts=function(E){E=E||"conflict";var B={};for(var D=0;D<this.length;D++){var A=this.get(D);var F=$(A).val();if(F){if(!(F in B)){B[F]=[A];$(A).removeClass(E);$(A).next().removeClass(E)}else{B[F].push(A)}}else{$(A).removeClass(E);$(A).next().removeClass(E)}}for(var D in B){if(B[D].length>1){for(var C=B[D].length;C--;){if(!$(B[D][C]).next().hasClass("clicked")){$(B[D][C]).addClass(E);$(B[D][C]).next().addClass(E)}}}}return this};jQuery.fn.replaceClass=function(B,A){this.each(function(D,C){var F=C.className.match(B);var E=F?F[1]:"";$(C).removeClass(E).addClass(A)});return this};$(".sudoku").bind("change",function(A){if(A.target.nodeName.toLowerCase()==="input"){var C=A.target;var B=parseInt(C.value,10);if(B&&B<10&&B>0){C.value=B}else{C.value=""}$(this).trigger("action",["changed",C]);A.stopPropagation()}}).bind("action",function(D,E,A){var B=parseInt(A.id.substring(2,3),10);var F=parseInt(A.id.substring(1,2),10);var C={row:parseInt(F/3,10),col:parseInt(B/3,10)};$(this).trigger(E,[B,F,C])}).bind("clicked",function(C,A,D,B){$(this).replaceClass(/\b(col\d)\b/,"col"+A).replaceClass(/\b(row\d)\b/,"row"+D).replaceClass(/\b(box\d\d)\b/,"box"+B.row+B.col)}).bind("changed",function(C,A,D,B){$(".c"+A+" input",this).conflicts("colconflict");$(".r"+D+" input",this).conflicts("rowconflict");$(".s"+B.row+" .c"+(B.col*3)+" input, .s"+B.row+" .c"+(B.col*3+1)+" input,.s"+B.row+" .c"+(B.col*3+2)+" input",this).conflicts("boxconflict");checkConflicts()});$(".sudoku input").bind("focus",function(A){if(A.target.nodeName.toLowerCase()==="input"){$(this).parents(".sudoku").trigger("action",["clicked",A.target]);A.target.select();A.stopPropagation()}});$(".sudoku .cell").bind("mousedown",function(A){if($(this).hasClass("disabled")){return}$(this).addClass("clicked");var B=$(this).prev().val()!=currentNumber?currentNumber:0;$(this).prev().val(B?B:"");$(this).parents(".sudoku").trigger("action",["changed",$(this).prev().get(0)])});$(".sudoku .cell").bind("mouseover",function(A){if($(this).hasClass("disabled")){return}$(this).addClass("hovered");$(this).data("prevVal",$(this).prev().val());if(sudokuTopic!=null){$(this).html(sudokuTopic.substr(currentNumber-1,1))}else{$(this).html(currentNumber)}});$(".sudoku .cell").bind("mouseout",function(A){if($(this).hasClass("disabled")){return}$(this).removeClass("hovered");if(sudokuTopic!=null){$(this).html($(this).prev().val().length?sudokuTopic.substr($(this).prev().val()-1,1):"")}else{$(this).html($(this).prev().val())}});if($.browser.msie){$(".sudoku .cell").bind("selectstart",function(A){$(this).trigger("click");A.stopPropagation();return false})}$(".selection-num .cell").bind("mousedown",function(A){if($(this).hasClass("disabled")){return}setCurrentNumber(parseInt($(this).prev().val(),10))});function setCurrentNumber(A){currentNumber=A;$(".selection-num .cell").removeClass("disabled");$("#num_"+currentNumber).addClass("disabled");if(sudokuTopic!=null){$(".sudoku .cell.hovered").html(sudokuTopic.substr(currentNumber-1,1))}else{$(".sudoku .cell.hovered").html(currentNumber)}}$(document).keydown(function(B){if(B.which>=49&&B.which<=57){setCurrentNumber(B.which-48)}else{if(B.which>=97&&B.which<=105){setCurrentNumber(B.which-96)}else{if(sudokuTopic!=null){for(var A=0;A<sudokuTopic.length;A++){if(B.which+32==sudokuTopic.charCodeAt(A)){setCurrentNumber(A+1);break}}}}}});$(".sudoku").bind("mousewheel",function(A,B){if(B>0){setCurrentNumber(currentNumber<9?currentNumber+1:1)}else{if(B<0){setCurrentNumber(currentNumber>1?currentNumber-1:9)}}return false});function checkConflicts(){var B=true;var A=true;$(".sudoku input").each(function(C){if($(this).val().length==0){B=false}if($(this).hasClass("colconflict")||$(this).hasClass("rowconflict")||$(this).hasClass("boxconflict")){B=false;A=false}});if(B){$("#button-done").removeAttr("disabled");$("#button-done").removeClass("disabled")}else{$("#button-done").attr("disabled","disabled");$("#button-done").addClass("disabled")}if(A){$(".cell.clicked").removeClass("hovered");if(sudokuTopic!=null){$(".cell.clicked").html($(".cell.clicked").prev().val().length?sudokuTopic.substr($(".cell.clicked").prev().val()-1,1):"")}else{$(".cell.clicked").html($(".cell.clicked").prev().val())}saveMove()}else{$(".cell.clicked").prev().val($(".cell.clicked").data("prevVal"));if(sudokuTopic!=null){$(".cell.clicked").html(sudokuTopic.substr(currentNumber-1,1))}else{$(".cell.clicked").html(currentNumber)}$(".sudoku input.colconflict, .sudoku input.rowconflict, .sudoku input.boxconflict").each(function(C){displayErrorCell($(this))})}$(".cell.clicked").removeClass("clicked")}function displayErrorCell(B){B.removeClass("colconflict rowconflict boxconflict");B.next().removeClass("colconflict rowconflict boxconflict");var A=200;B.next().addClass("conflict").delay(A).queue(function(C){$(this).removeClass("conflict");C()}).delay(A).queue(function(C){$(this).addClass("conflict");C()}).delay(A).queue(function(C){$(this).removeClass("conflict");C()})}function isValidLastMove(){return $(".sudoku input.colconflict, .sudoku input.rowconflict, .sudoku input.boxconflict").length==0}function checkSudoku(){$("#timer").countdown("lap");solutionTime=(new Date()).getTime()-sudokuTimer.getTime();var A="";$(".sudoku input").each(function(C){A+=$(this).val().length?$(this).val():"0"});$("#button-done").attr("disabled","disabled");$("#button-done").addClass("disabled");$("#button-reset").attr("disabled","disabled");$("#button-reset").addClass("disabled");var B=FB.getSession();$.getJSON(masterSiteUrl+"ajaxService?callback=?",{cmd:"checkSudokuSolution",siteid:siteid,id:sudokuId,gametype:sudokuType,fbsid:B!=null?B.session_key:"",score:solutionTime,solution:A,rnd:Math.random()},function(C){if(C.valid){$("#timer").countdown("pause");$("#timer").children(0).html(getTimeNumber(solutionTime));$(".sudoku .cell").unbind("click");$(".sudoku .cell").unbind("selectstart");$.cookies.del(cookieName);sessTime=getTimeString(solutionTime);sessDiff=getDiffString(sudokuDiff);updateFBShareDisplay();$("#gamecomplete").overlay({top:"center",left:"center",expose:{color:"#333",loadSpeed:200,opacity:0.9},api:true,closeOnClick:true,onClose:function(){resetSudoku()}}).load();getTopScores()}else{$("#sudoku-msg").hide();alert("Sudoku is not solved yet");$("#timer").countdown("resume");$("#button-done").removeAttr("disabled");$("#button-done").removeClass("disabled");$("#button-reset").removeAttr("disabled");$("#button-reset").removeClass("disabled")}})}function postTopScore(){var A=FB.getSession();$.getJSON(masterSiteUrl+"ajaxService?callback=?",{cmd:"postDailyTopScore",siteid:siteid,gameid:sudokuId,gametype:sudokuType,fbsid:A!=null?A.session_key:"",score:solutionTime,rnd:Math.random()},function(B){if(B.success){getTopScores()}})}function updateFBShareDisplay(){var C="/web-templates/word/sudoku-complete-anon.jhtml";var B="/web-templates/word/sudoku-complete-fb.jhtml";var A="/web-templates/word/sudoku-share.fbml";if(sudokuTopic!=null){C="/web-templates/word/wordoku-complete-anon.jhtml";B="/web-templates/word/wordoku-complete-fb.jhtml";A="/web-templates/word/wordoku-share.fbml"}var D=FB.getSession();if(D==null){$.ajax({url:C,cache:false,success:function(F){var E=prepareFbTemplate(F);$("#gamecomplete-inner").html(E);$("#game-fbconnect").click(function(){fbLogin(function(){updateFBShareDisplay();postTopScore()})})}})}else{$.ajax({url:B,cache:false,success:function(F){var E=prepareFbTemplate(F);$("#gamecomplete-inner").html(E)}});$.ajax({url:A,cache:false,success:function(F){var E=prepareFbTemplate(F);$("#serverFbml").html(E);FB.XFBML.parse($("#serverFbmlContainer")[0]);$("#serverFbmlContainer").show()}})}}function prepareFbTemplate(A){A=A.replace(/GAMETIME/g,sessTime);A=A.replace(/GAMEDIFF/g,sessDiff);A=A.replace(/GAMEURL/g,window.location.href);return A}function resetSudoku(){$(".sudoku input").each(function(A){if(!$(this).hasClass("disabled")){$(this).val("");$(this).next().html("")}$(this).removeClass("colconflict rowconflict boxconflict");$(this).next().removeClass("colconflict rowconflict boxconflict")});resetTimer(new Date());$("#button-done").attr("disabled","disabled");$("#button-done").addClass("disabled")}function switchBoard(C,B){var A=0;$(".sudoku td").each(function(D){var E=$(this).children().get(0).id;var F=B.substring(A,A+1);if(F!="0"){$(this).html('<input type="text" id="'+E+'" value="'+F+'" class="disabled" disabled="disabled" style="display:none;"><div class="cell disabled">'+F+"</div>")}else{$(this).html('<input type="text" id="'+E+'" value="" style="display:none;"><div class="cell"></div>')}A++});sudokuId=C;resetSudoku()}function getTimeString(E){var A="";E=Math.round(E/1000);var D=Math.floor(E/3600);var B=Math.floor((E-D*3600)/60);var C=Math.floor(E-D*3600-B*60);if(D>0){A+=D+" hr "}if(B>0){A+=B+" min and "}A+=C+" sec";return A}function getTimeNumber(E){var A="";E=Math.round(E/1000);var D=Math.floor(E/3600);var B=Math.floor((E-D*3600)/60);var C=Math.floor(E-D*3600-B*60);if(D<10){D="0"+D}if(B<10){B="0"+B}if(C<10){C="0"+C}return D+":"+B+":"+C}function getDiffString(A){if(A=="0"){return"Easy"}else{if(A=="1"){return"Medium"}else{return"Hard"}}}function shareSudoku(D){var B="Try to beat my time!";var C={name:"I just solved WordGames.com daily Sudoku!",href:window.location.href,caption:"{*actor*} solved WordGames.com daily Sudoku on "+getDiffString(sudokuDiff)+" difficulty in "+getTimeString(D)+".",media:[{type:"image",src:"http://www.girlgames.com/images/logo-wordgames.png",href:window.location.href}]};var A=[{text:"Play Sudoku",href:window.location.href}];FB.Connect.streamPublish(B,C,A)}function getTopScores(){fbEnsureInit(function(){var A=FB.getSession();if(A==null){$("#topscore-table-friend > tbody").html("");$.ajax({url:"/web-templates/word/score-connect-prompt.jhtml",cache:false,success:function(B){$("#score-friend-times .table-header").hide();$("#topscore-table-friend > tbody").append(scorerecorde,{msg:B});$("#score-connect").click(function(){fbLogin(function(){getTopScores()})})}})}$("#topscore-cont-global").loadmask("Loading...");$("#topscore-cont-friend").loadmask("Loading...");$.getJSON(masterSiteUrl+"ajaxService?callback=?",{cmd:"findDailyTopScores",siteid:siteid,gameid:sudokuId,gametype:sudokuType,fbsid:A!=null?A.session_key:"",rnd:Math.random()},function(B){if(B.success){var C=B.results[0];$("#topscore-table-global > tbody .scorerec").remove();if(C.length>0){$.each(C,function(F,G){var E=(F%2!=0)?"alt":"";$("#topscore-table-global > tbody").append(scorerecord,{position:F+1,fbuid:G.fbuid,fbname:G.fbname,fbavatar:G.fbavatar,score:getTimeNumber(G.score),altClass:E})})}else{$("#topscore-table-global > tbody").append(scorerecorde,{msg:"No scores found"})}if(A!=null){var D=B.results[1];$("#score-friend-times .table-header").show();$("#topscore-table-friend > tbody .scorerec").remove();if(D.length>0){$.each(D,function(F,G){var E=(F%2!=0)?"alt":"";$("#topscore-table-friend > tbody").append(scorerecord,{position:F+1,fbuid:G.fbuid,fbname:G.fbname,fbavatar:G.fbavatar,score:getTimeNumber(G.score),altClass:E})})}else{$("#topscore-table-friend > tbody").append(scorerecorde,{msg:"No scores found"})}}}$("#topscore-cont-global").unmask();$("#topscore-cont-friend").unmask()})})}function saveMove(){var B="";$(".sudoku input").each(function(C){if(!$(this).hasClass("disabled")&&$(this).val().length){B+=$(this).val()}else{B+="0"}});solutionTime=(new Date()).getTime()-sudokuTimer.getTime();var A=B+"_"+solutionTime;$.cookies.set(cookieName,A,{hoursToLive:24})}function loadMoves(){var A=$.cookies.get(cookieName);if(A!=null){$.ajax({url:"/web-templates/word/continue-game-load-prompt.jhtml",success:function(B){$("#loadprompt").html(B);$("#loadprompt").overlay({absolute:true,top:"center",left:"center",expose:{color:"#333",loadSpeed:200,opacity:0.9},api:true,closeOnClick:true,onClose:function(){$("#loadprompt").overlay().close()}}).load();$("#loadyes").click(function(){restoreMoves();$("#loadprompt").overlay().close()});$("#loadno").click(function(){resetTimer(new Date());$("#loadprompt").overlay().close()});$("#loadprompt > .class").click(function(){resetTimer(new Date());$("#loadprompt").overlay().close()})}})}}function restoreMoves(){var B=$.cookies.get(cookieName);if(B!=null){var A=B.split("_");solutionTime=parseInt(A.pop(),10);A=A[0];var D=(new Date()).getTime();D-=solutionTime;resetTimer(new Date(D));var C=0;$(".sudoku .cell").each(function(E){if(!$(this).hasClass("disabled")&&A.charAt(C)!="0"){setCurrentNumber(parseInt(A.charAt(C),10));$(this).trigger("mousedown")}C++});setCurrentNumber(1)}$("#loadprompt").overlay().close()};