// --------------------------------------------------
// Bubble management
// --------------------------------------------------

// Return position of a HTML element
function getPos(objId) {
    
  var obj = document.getElementById(objId);          
  var x = y = 0;
  if (obj.offsetParent) {
    x = obj.offsetLeft;
    y = obj.offsetTop;
    while (obj = obj.offsetParent) {
  	  x += obj.offsetLeft;
	  y += obj.offsetTop;
	}
  }
  return [x,y];
	  
}
   
// Close bubble
function closeBubble() {
   
   var back = document.getElementById("bubbleBack");
   var text = document.getElementById("bubbleText");
   var btn  = document.getElementById("bubbleClose");
   var btn1 = document.getElementById("bubbleLink");
     
   if(back!=null) {
     
     back.style.visibility="hidden";
     text.style.visibility="hidden";       
     btn.style.visibility="hidden";
     btn1.style.visibility="hidden";
       
   }
   
}

// Link bubble
function linkBubble(scoreid) {

  closeBubble();
  window.location.href = "http://www.blockout.net/blockout2/advstat.cgi?scoreid="+scoreid;

}
   
// Display stats
function displayStat(scoreId,score,nbCube,emptyPit,nbLine1,nbLine2,nbLine3,nbLine4,nbLine5,
                     startLevel,playerName,recDate,gameTime,nbCubePerLevel,setupName) {
                     
  var pos = getPos( "btnStat" + scoreId );
  var back = document.getElementById("bubbleBack");
  var text = document.getElementById("bubbleText");
  var btn  = document.getElementById("bubbleClose");
  var btn1 = document.getElementById("bubbleLink");
     
  if(back!=null) {
     
    // Build stat text
    
    var nbLine = nbLine1 + nbLine2*2 + nbLine3*3 + nbLine4*4 + nbLine5*5;
    var endLevel = Math.floor(nbCube / nbCubePerLevel);
    if( endLevel<startLevel ) endLevel=startLevel;
    if( endLevel>10 ) endLevel=10;
           
    newText = "<table width=380 border=0 cellpadding=0 cellspacing=2>" +
              "<tr><td align=center><b><font size=+1>Statistics [" + setupName + "]</font></b></td></tr>" +
              "<tr><td align=left>Score: <b><font size=2>" + score + "</font></b> by <b><font size=2>" + playerName + "</font></b></td></tr>" +
              "<tr><td align=left>Date: <b>" + recDate + "</b></td></tr>" + 
              "<tr><td align=left>Cubes: <b>"+ nbCube + "</b></td></tr>" + 
              "<tr><td align=left>Lines: <b>"+ nbLine + "<font color=#CECECE>__</font>" + nbLine1 + "</b>[x1] <b>" + nbLine2 + "</b>[x2] <b>" + nbLine3 + 
              "</b>[x3] <b>" + nbLine4 + "</b>[x4] <b>" + nbLine5 + "</b>[x5]</td></tr>" + 
              "<tr><td align=left>Empty Pit: <b>" + emptyPit + "</b></td></tr>" +              
              "<tr><td align=left>Level: From <b>" + startLevel + "</b> to <b>" + endLevel + "</b></td></tr>" +
              "<tr><td align=left>Game time: <b>" + gameTime + "</b></td></tr></table>";
    
    // Update components
              
    back.style.left=(pos[0]-420) + "px";
    back.style.top=(pos[1]+5) + "px";
    back.style.visibility="visible";
    
    text.innerHTML = newText;
    text.style.left=(pos[0]-405) + "px";
    text.style.top=(pos[1]+20) + "px";
    text.style.visibility="visible";       

    btn.style.left=(pos[0]-280) + "px";
    btn.style.top=(pos[1]+167) + "px";
    btn.style.visibility="visible";
    
    btn1.style.left=(pos[0]-210) + "px";
    btn1.style.top=(pos[1]+167) + "px";
    btn1.style.visibility="visible";
    btn1.onclick = function() { linkBubble(scoreId); };    
       
  }

}

// Display comment
function displayComment(scoreId,comment) {
                     
  var pos = getPos( "btnComment" + scoreId );
  var back = document.getElementById("bubbleBack");
  var text = document.getElementById("bubbleText");
  var btn  = document.getElementById("bubbleClose");
  var btn1 = document.getElementById("bubbleLink");
     
  if(back!=null) {
         
    // Update components
              
    back.style.left=(pos[0]-420) + "px";
    back.style.top=(pos[1]+5) + "px";
    back.style.visibility="visible";
    
    text.innerHTML = "<pre>" + comment + "</pre>";
    text.style.left=(pos[0]-405) + "px";
    text.style.top=(pos[1]+20) + "px";
    text.style.visibility="visible";       

    btn.style.left=(pos[0]-240) + "px";
    btn.style.top=(pos[1]+167) + "px";
    btn.style.visibility="visible";
    
    btn1.style.visibility="hidden";
       
  }

}
