From 6b8c58ac2d4de502421acef48f4434bee605633f Mon Sep 17 00:00:00 2001 From: Patrick Davison Date: Tue, 8 Jan 2013 01:53:05 -0800 Subject: Challenges Implementation. LOTS of stuff Fixed an issue with loading best solution from logged out to logged in state. Commented out a lot of firephp stuff; feel free to uncomment. --- js/scores.js | 224 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 218 insertions(+), 6 deletions(-) (limited to 'js/scores.js') diff --git a/js/scores.js b/js/scores.js index 0c1383f..734683a 100644 --- a/js/scores.js +++ b/js/scores.js @@ -28,10 +28,12 @@ function scoresRequestPage(mapid, page) { ajax.runAJAX();// Do it! return true; } + function scoresRequestLoading() { //Signify that it's working in some manner? //console.log("I'm loading teh page..."); } + function scoresRequestPageDone() { //console.log("Request Page Done", ajax.response); var JO = decryptJSON(ajax.response); @@ -46,6 +48,7 @@ function scoresRequestPageDone() { } } } + function scoresUpdatePage(mapid, page, html) { // console.log("Updating Page", mapid, page); scoresPreparePage(mapid, page); @@ -55,6 +58,7 @@ function scoresUpdatePage(mapid, page, html) { scoresShowPage(mapid, page); } } + function scoresShowMyPage(mapid) { //Future use } @@ -101,6 +105,7 @@ function scoresPreparePage (mapid, page) { } return true; } + function scoresFormatPage(JO) { // console.log("Formating page"); @@ -132,14 +137,14 @@ function scoresFormatPage(JO) { styleClass = 'border-top: 6px solid #777799;'; p = p+ ""; - p = p+ ""; + p = p+ ""; if (u.medal == 'gold') { - p = p+ ""; + p = p+ ""; } else if (u.medal == 'silver') { - p = p+ ""; + p = p+ ""; } else { - p = p+ ""; + p = p+ ""; } p = p+ i+ ""; p = p+ ""; @@ -148,7 +153,7 @@ function scoresFormatPage(JO) { p = p+ " "; p = p+ " "; p = p+ ""; - p = p+ ""+u.display+""; + p = p+ ""+u.display+""; p = p+ ""; p = p+ ""+u.moves+""; p = p+ ""; @@ -181,6 +186,7 @@ function scoresFormatPage(JO) { //p = JO.navi+p; return p; } + function scoresFormatPageNavi(JO) { var r = ''; var showedPrevPage = true; @@ -208,4 +214,210 @@ function scoresFormatPageNavi(JO) { } return r; -} \ No newline at end of file +} + + +//Memberlist related functions: +var membersPages = new Object; +var membersCurrentPage = 1; + +function membersRequestPage(page) { + console.log('membersRequestPage', page); + if (typeof(ajax) != 'object') { + setTimeout(function() {membersRequestPage(page)},200); + return false; + } + // Ask again if it's busy. + switch (ajax.xmlhttp.readyState) { + case 4: + case 0: + break; + default: + setTimeout(function() {membersRequestPage(page)},300); + return false; + } + + //console.log("Requesting Page", page, ajax.inUse); + // == Additionally, check for achievements. + ajax.requestFile = "do.php?r=reqMemberPage&reqPage="+page; + ajax.onCompletion = membersRequestPageDone; // Specify function to be executed on response. + //ajax.onLoading = ''; + //ajax.onLoaded = ''; + //ajax.onFail = ''; + ajax.runAJAX();// Do it! + return true; +} + +function membersRequestPageDone() { + //console.log("Request Page Done", ajax.response); + var JO = decryptJSON(ajax.response); + if (JO == undefined) + return; + membersUpdatePage(JO.page, membersFormatPage(JO)); +} + +function membersShowPage(page) { + page = page - 0; + console.log('membersShowPage', page); + if (membersPreparePage(page) == false) { + membersCurrentPage = page; + //Signify some sort of loadingness? + //Request Page + membersRequestPage(page); + return; + } + + if (typeof(membersPages[page].html) === 'undefined') { + membersRequestPage(page); + membersCurrentPage = page; + return; + } + document.getElementById('members').innerHTML = membersPages[page].html + + //Also; update the page + + if (page != membersCurrentPage) { + membersRequestPage(page); + } + membersCurrentPage = page; +} + +function membersPreparePage (page) { + if (typeof(membersPages) != 'object') { + membersPages = new Object; + membersPages[page] = new Object; + return false; + } + if (typeof(membersPages[page]) != 'object') { + membersPages[page] = new Object; + return false; + } + return true; +} + +function membersUpdatePage(page, html) { + console.log("Updating Page", page); + membersPreparePage(page); + membersPages[page].html = html; + if (page == membersCurrentPage) { + membersShowPage(page); + } +} + +function membersFormatPageNavi(JO) { + var r = ''; + var showedPrevPage = true; + for (var i = 1; i <= JO.pageCount; i++) { + if ( + (JO.page > i - 3 && JO.page < i + 3) + || (i == 1) + || (i == JO.pageCount) + || (i == JO.userPage) + ) { + + if (!showedPrevPage) + r = r + ' ... '; + if (JO.page == i) { + r = r + " " + i + ""; + } else if (i == JO.userPage) { + r = r + " " + i + ''; + } else { + r = r + " " + i + ''; + } + showedPrevPage = true; + } else { + showedPrevPage = false; + } + } + + return r; +} + +function membersFormatPage(JO) { + // console.log("Formating page"); + + var p = ""; + if (JO.pageCount > 1) { + var navi = membersFormatPageNavi(JO); + p = p+""; + } + + p = p+""; + p = p+""; + p = p+""; + p = p+""; + p = p+""; + p = p+""; + p = p+""; + p = p+""; + p = p+""; + p = p+""; + p = p+""; + + var showedLastUser = true; + var x = 0; + + var previousI = 0; + + for (var i in JO.users) { + var u = JO.users[i]; + var scoredLocalTime = new Date(); + scoredLocalTime.setTime(scoredLocalTime.getTime() - u.secondsSinceScored * 1000); + + var styleClass = ''; + + if (previousI != i + 1) + if (previousI < i - 1 && previousI != 0) + styleClass = 'border-top: 6px solid #777799;'; + + p = p+ ""; + p = p+ ""; + p = p+ ""; + + p = p+ ""; + p = p+ ""; + p = p+ ""; + p = p+ ""; + p = p+ ""; + p = p+ ""; + p = p+ ""; + p = p+ ""; + + previousI = i; + } + + //p = p+""; + p = p+"
"+navi+"
RankNameMazesMovesPast WeekWinsTiesJoinedLast Login
"; + p = p+ i+ ""; + p = p+ "
"; + p = p+ "
"; + p = p+ "
"; + p = p+ "
"; + p = p+ ""; + p = p+ ""+u.display+""; + p = p+ "
"+u.totalMazes+""+u.totalMoves+""+u.totalMovesThisWeek+""+u.totalWins+""+u.totalTies+""+u.dateJoined+""+u.dateLogin+"
"+navi+"
"; + + var nextPage = JO.page - 0 + 1; + var prevPage = JO.page - 1; + + if (JO.pageCount > 1) { + if (JO.page < JO.pageCount) { + p = p+">"; + } else + p = "
>
"+p; + if (JO.page > 1) { + p = "<"+p; + } else + p = "
<
"+p; + } + p = "
"+p+"
"; + + //console.log(p); + //console.log('jo page', JO.page); + //console.log('jo pagecount', JO.pageCount); + //p = JO.navi+p; + return p; +} + + + -- cgit v1.2.3