/* Copyright (c) 2010, Movitica Team. All rights reserved. */ YAHOO.namespace("website.panel"); /** * * @param oContainer {Object} Panel's container */ YAHOO.website.panel.Scores = function(sId, sGameId) { YAHOO.website.panel.Scores.superclass.constructor.call(this, sId); if (sGameId) { this._sGameId = sGameId; } this._init(); } YAHOO.lang.extend(YAHOO.website.panel.Scores, YAHOO.website.panel.Panel); YAHOO.website.panel.Scores.prototype._oPeriodGroup = null; YAHOO.website.panel.Scores.prototype._sGameId = null; YAHOO.website.panel.Scores.prototype._init = function() { // Create time period buttons. var oPeriodGroup = this._oPeriodGroup = new YAHOO.widget.ButtonGroup(this.id + "-period-buttons"); oPeriodGroup.on("checkedButtonChange", function() { this.update(); }, this, true); } YAHOO.website.panel.Scores.prototype._showScores = function(data) { // Clear old data. if (data.length > 0) { Dom.get(this.id + "-1-place").innerHTML = ""; Dom.get(this.id + "-2-place").innerHTML = ""; Dom.get(this.id + "-3-place").innerHTML = ""; var sListHtml = ""; for (var i = 0; i < 3; i++) { Dom.removeClass(this.id + "-" + (i+1) + "-place", "place-" + (i+1)); // Remove excess items while (Dom.getChildren(Dom.get(this.id + "-" + (i+1) + "-place").parentNode).length > 1) { var aChildren = Dom.getChildren(Dom.get(this.id + "-" + (i+1) + "-place").parentNode); Dom.get(this.id + "-" + (i+1) + "-place").parentNode.removeChild(aChildren[aChildren.length - 1]); } } for (var i = 0; i < data.length; i++) { if (i < 3) { // TODO: Removed until user can upload images. /* var sPrizePlaceHtml = ""; Dom.get(this.id + "-" + (i+1) + "-place").innerHTML = sPrizePlaceHtml; */ if (!Dom.hasClass(this.id + "-" + (i+1) + "-place", "place-" + (i+1))){ Dom.addClass(this.id + "-" + (i+1) + "-place", "place-" + (i+1)); } var sStarHtml = "
" + (i+1) + "
"; Dom.get(this.id + "-" + (i+1) + "-place").parentNode.innerHTML += "
" + data[i].User.UserName + "
"; Dom.get(this.id + "-" + (i+1) + "-place").parentNode.innerHTML += "
" + data[i].ScoreValue + "
"; Dom.get(this.id + "-" + (i+1) + "-place").innerHTML += sStarHtml; } else { sListHtml += "
" + (i + 1) + ". " + data[i].User.UserName + "........" + data[i].ScoreValue + "
"; } } Dom.get(this.id + "-list").innerHTML = sListHtml; this._showControls(); } else { this._hideControls(); } } YAHOO.website.panel.Scores.prototype._showControls = function() { Dom.removeClass(this.id + "-prize-place-area", "hidden"); Dom.removeClass(this.id + "-list", "hidden"); } YAHOO.website.panel.Scores.prototype._hideControls = function() { var oPrizeArea = Dom.get(this.id + "-prize-place-area"); if (!Dom.hasClass(oPrizeArea, "hidden")) { Dom.addClass(oPrizeArea, "hidden"); } var oList = Dom.get(this.id + "-list"); if (!Dom.hasClass(oList, "hidden")) { Dom.addClass(oList, "hidden"); } } YAHOO.website.panel.Scores.prototype.update = function(sGameId) { this._hideControls(); if (!sGameId && !this._sGameId) { return; } if (sGameId) { this._sGameId = sGameId; } // Get curent time period var sPeriod = this._oPeriodGroup.get("checkedButton").get("name"); var oAjaxData = { game: this._sGameId, period: sPeriod }; YAHOO.website.service.ajax.execute( "getScores", oAjaxData, { success: function(data) { // Hide ajax loader. // Show scores. this._showScores(data); }, failure: function() { // Hide ajax loader. }, scope: this } ); }