gridDiv=null;
gridDivSetUp=false;
gridString="";
gridStringSetUp=false;

//default settings to pull off the popular grids
offset=0;
count=30;
easiest=-1;
hardest=-1;
kernel=1;
sortmode=0;
solutions=0;
guesses=0;
today=0;
maxNumberCount=37;


function showGridHTML(valueStr)
{
  var a0,styleStr,ix;

  var xName=new Array("1","2","3","4","5","6","7","8","9");
  var yName=new Array("A","B","C","D","E","F","G","H","I");

  a0="<table cellpadding=1 cellspacing=0>";
  var x,y;
  a0+="<tr>";
  a0+="<td></td>";
  for(x=0;x<9;x++)
  {
    a0+="<td>"+xName[x]+"</td>";
  }
  a0+="</tr>";

  ix=0;
  for(y=0;y<9;y++)
  {
    a0+="<tr>";
    a0+="<td>"+yName[y]+"</td>";
    for(x=0;x<9;x++)
    {
      styleStr=" style='border-color:";
      styleStr+=(y%3==0)?"blue ":"white ";
      styleStr+=(x%3==2)?"blue ":"white ";
      styleStr+=(y%3==2)?"blue ":"white ";
      styleStr+=(x%3==0)?"blue":"white";
      styleStr+="'";
      dv=valueStr.charAt(ix);
      if(dv=="_") dv="&nbsp;";
      a0+="<td"+styleStr+">"+dv+"</td>";
      ix++;
    }
    a0+="</tr>";
    ix++; //skip delimeter
  }
  a0+="</table>";
  return a0;
}

function setUpGridDiv()
{
  var i;
  
  gridDiv=document.getElementById("gridDiv");
  gridDivSetUp=true;
  if(gridStringSetUp) displayGrids();
}

function setUpGridString(popFrameEl)
{
  //var popFrameEl=document.getElementById("mostPopularGridFrame");
  var oDoc = (popFrameEl.contentWindow || popFrameEl.contentDocument);
  if (oDoc.document) oDoc = oDoc.document;
  gridString=oDoc.body.innerHTML;
  gridStringSetUp=true;
  if(gridDivSetUp) displayGrids();
}

function displayGrids()
{
  var valueArray,i,a0,gridStringEl;
  var ct=0;
  
  a0="<table cellspacing=20>";
  valueArray=gridString.split(",");
  for(i=0;i<valueArray.length;i++)
  {
    valuePair=valueArray[i].split(":");
    gridPopularity=valuePair[0];
    gridStringEl=valuePair[1];
    gridDifficulty=valuePair[2];
    if(gridDifficulty==-1) gridDifficulty="?";
    gridGuesses=valuePair[3];
    if(gridGuesses==-1) gridGuesses="?";
    gridSolutions=valuePair[4];
    if(gridSolutions==-1) gridUnique="?";
    if(gridSolutions==0) gridUnique=jstr.noNone;
    if(gridSolutions==1) gridUnique=jstr.yes;
    if(gridSolutions>1) gridUnique=jstr.noGreaterThanOne;

    if(gridStringEl && isValidSudokuString(gridStringEl,"x"))
    {
      a0+="<tr><td class='nb'>#"+(i+1)+":</td><td class='nb'>"+jstr.hitCount+gridPopularity+"<br>"+jstr.uniqueSolution+gridUnique+"<br>"+jstr.difscore+gridDifficulty+"<br>"+jstr.numguess+gridGuesses+"</td>";
      a0+="<td class='nb'>"+showGridHTML(gridStringEl)+"</td>";
      a0+="<td class='nb'><button onclick='chooseGrid(\""+gridStringEl+"\");'>"+jstr.loadThisOne+"</button></td>";
      //a0+="<td>"+gridStringEl+"</td>";
      a0+="</tr>";
      ct++;
    }
  }
  if(ct==0) a0+="<tr><td class='nb'>"+jstr.noGridsToday+"</td></tr>";
  a0+="</table>";
  gridDiv.innerHTML=a0;
}

function chooseGrid(gridStringEl)
{
  submitGridString(gridStringEl);
  gridStringEl=gridStringEl.replace(/x/g,"+");
  setCookie("currentgrid",gridStringEl,0.1);
  goToPage('index.html');
}
